掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
メッセージボックスで、「10秒後に終了しますか?」と出したい。 (ID:32751)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>もしかしたら、あれってMessageDlgとかではなく、Form2をメッセージボックスっぽくしているのかなー?と、思ったり。 >それなら、出来るかなー?と思うんですが、セオリーの方法はありますか? MessageDlg 自体 TMessageForm というフォームです。 var Form8: TForm8; MessageForm: TForm; Message: TLabel; Count: Integer; implementation {$R *.dfm} procedure TForm8.Button1Click(Sender: TObject); var I: Integer; begin Count := 10; //フォーム作成 MessageForm := CreateMessageDialog(IntToStr(Count)+'秒後に終了します', mtInformation, [mbOk,mbCancel]); //ラベルの検索 Message := nil; for I:=0 to MessageForm.ComponentCount -1 do begin if MessageForm.Components[I] is TLabel then Message := TLabel(MessageForm.Components[I]); end; Timer1.Interval := 1000; Timer1.Enabled := True; //フォーム表示 MessageForm.Show; Self.Enabled := False; while MessageForm.ModalResult = mrNone do begin Application.ProcessMessages; end; Timer1.Enabled := False; Self.Enabled := True; if MessageForm.ModalResult = mrOk then begin MessageForm.Free; Close; end else begin MessageForm.Free; end; end; procedure TForm8.Timer1Timer(Sender: TObject); begin Dec(Count); if Count = 0 then MessageForm.ModalResult := mrOk; if Assigned(Message) = True then begin Message.Caption := IntToStr(Count) + '秒後に終了します'; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.