From.Showしなくても表示される?

解決


to  2004-06-08 18:13:08  No: 9354  IP: 192.*.*.*

初歩的な質問で申し訳ありませんm(__)m
MDI親フォームからMDI子フォームをCreateしたいのですが、

frm := Tfrm.Create(Application);
frm.Show;

で表示されるんですよね?

frm := Tfrm.Create(Application);

だけでfrmが表示されちゃうんですので困っています。
何かアドバイスをいただけないでしょうか?

編集 削除
jok  2004-06-08 18:20:26  No: 9355  IP: 192.*.*.*

frm.Hide; を実行してみると理由がわかります。

編集 削除
to  2004-06-08 18:35:10  No: 9356  IP: 192.*.*.*

さっそくありがとうございます。
やってみました。

'MDI 子フォームを隠すことはできません'

ってことは、MDI子フォームの場合は
frm.Create だけで表示しちゃうってことでいいんでしょうか!?

編集 削除
jok  2004-06-08 19:16:04  No: 9357  IP: 192.*.*.*

> frm.Create だけで表示しちゃうってことでいいんでしょうか!?

そうだと思いますよ。逆に、つくっておいて表示しない、という状況が思いつきませんが。

編集 削除
to  2004-06-09 09:42:07  No: 9358  IP: 192.*.*.*

そうなんですか・・・

フォームを作ると同時にフォーム上のデータセットを開くのですが
それがちょっと時間がかかるので、フォームの描画に時間がかかるんです。
間が抜けた感じになるので、データセットが開いた後にfrm.Showさせたい
と思ったんですが。

他の方法で検討するしかないですね。

ありがとうございました。

編集 削除
jok  2004-06-09 10:09:48  No: 9359  IP: 192.*.*.*

Show したあと、カーソルを砂時計にして「いまデータを開いています」と
ダイアログを出しておけばユーザは、間抜けな感じを受けないと思いますが。

編集 削除
 2004-06-09 10:51:57  No: 9360  IP: 192.*.*.*

作成した後、暫く隠しておくには…

  frm := Tfrm.Create(Application);
  ShowWindow(frm.Handle, SW_HIDE);
  // データセットを開く
  // その間 frm はちょっと隠しておく
  // Sleep(5000);
  ShowWindow(frm.Handle, SW_SHOW);

編集 削除