当方AS400を使用してDELPHIを勉強中なのですが、
AS400等々に関わらず、なんらかの時間待ち(SQLを投げて戻ってくるまでとか、DBへの接続への時間待ち等々)に”ただ今処理中です!!”などの
メッセージを出したいのですが、どのようにすればよろしいでしょうか?
ちなみに、下記にソースを記しますが、どうもうまくいきません。
お教えいただければ幸いです。
begin
ここに、メッセージを出し、Apprication.Runの前に消したいと思い
Application.Initialize;
Application.CreateForm(TmsgForm1, msgForm1);
-----以下本来のログイン画面------
Application.Initialize;
--ここでDBの接続に行きます。
Application.CreateForm(TfrmLOGIN, frmLOGIN);
---ここで、(ログイン画面を表示する寸前にメッセージを消去したいので
msgForm1.Hide;
---以下でログイン画面を表示したいので
Apprication.Run
end;
としましたがうまくいきません。
よろしくお願いいたします。
処理を始める際にメッセージを表示
処理をする
処理が完了した時点でメッセージを消す
てな感じで
frmLOGINのOnCreateで隠すというのはどうでしょうか?
Application.Run が実行されるまで、メッセージポンプがまわってませんよ。
イベントドリブンの仕組みを基礎からどうぞ。
質問された方とまったく同じようようなことで悩んでいるのですが
初心者なもので、ご教授お願いします。
表示するダイアログを作っておいて、
このダイアログはProjectの自動生成で作成しておきます。
表示したい時にStayonTopで表示して、
終了時にHideします。
HOtaさん大変ありがとうございます。
具体的なサンプルがあればお願いします。
初心者なものでいろいろためしけいるのですが、
うまくいきません。
よろしくおねがいします。
印刷プログラムが終了した時点でMessageDialog
を消したいので次のようなプログラムを作りました。
PT := TPrintList.Create(False, Dlg);
のところでエラーがでるのですが、
ご教授おねがいします。
var
> Dlg: TForm;
> begin
> Dlg := CreateMessageDialog('印刷中です。',mtCustom, [mbCancel]);
>
> // コンストラクタでダイアログを受け取れるようにする
> PT := TPrintList.Create(False, Dlg);
>
> case Dlg.ShowModal of
> mrOk:
> begin
> // 印刷が正常終了した場合の処理
> end;
> mrCancel:
> begin
> // キャンセルされた場合の処理
> end;
> end;
> end;
スプラッシュウィンドウの事だと思います
Demos\Db\IbMastApp\mastapp.dpr
で、どうでしょうか?
バージョンで違いが有るかも知れません
PTはどこで宣言していますか?
ツイート | ![]() |