掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ステータスバーの表示を数秒後に消すには? (ID:44440)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
twiier 師匠、StatusBar1.SimpleText :=''; は Timer1 の OnTimer イベントに書くのですよ。 一つの関数でやろうとするなら、 procedure PostStatusbarText(SB: TStatusBar; aText: string; aDispTime: Integer = 3); ... procedure TForm1.PostStatusbarText(SB: TStatusBar; aText: string; aDispTime: Integer); type TNotifyEventProc = reference to procedure(Sender: TObject); var Timer: TTimer; {MakeNotifyEventHandler begin} function MakeNotifyEventHandler(const Proc: TNotifyEventProc): TNotifyEvent; var method: TMethod; begin method.Data := PPointer(@Proc)^; method.Code := PPointer(PByte(PPointer(PPointer(@Proc)^)^)+$C)^; Result := TNotifyEvent(method); end; {MakeNotifyEventHandler end} begin SB.SimplePanel := True; SB.SimpleText := aText; Timer := TTimer.Create(nil); Timer.Enabled := False; Timer.OnTimer := MakeNotifyEventHandler ( procedure (Sender: TObject) begin SB.SimpleText := ''; Timer.Free; end ); Timer.Interval := aDispTime * 1000; Timer.Enabled := True; end; これを書いておいて、 procedure TForm1.Button1Click(Sender: TObject); begin PostStatusbarText(StatusBar1, 'Hello,World.'); end; こんな感じで使います。 See Also: [イベントハンドラを無名メソッドで書く。 - 全力わはー] http://d.hatena.ne.jp/tales/20100105/1262689156
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.