MDIで、起動時に引数に与えられたファイルを子ウインドウで開くには?

解決


はし  2003-01-20 01:01:19  No: 2644

MDIで作っています。
ショートカットへのD&Dや、送るメニューでファイルを送ったとき
そのファイルをMDIの子ウインドウで開いた状態でMDIプログラムを起動したいと思います。

procedure TMainForm.FormCreate(Sender: TObject);
 ……
 begin
   // 引数処理
   if ParamCount>0 then           
     for i:=1 to ParamCount do
       // ファイルが存在するならファイルを開く
       if FileExists(ParamStr(i)) then
         begin
          //  ファイルオープン処理
         end;

のようにしてファイルを開こうとしているんですが、
TMainForm.FormCreate の中 (つまり、親となるMDIフォームがまだ作られていない状態)で
子ウインドウを開こうとしているのはだめだということらしいです。
だから、フォームが作られて後に引数で与えられたファイルを開きたいんですが、
なにか良い方法はないでしょうか?
よろしくお願いします。


たかみちえ  URL  2003-01-20 01:37:40  No: 2645

よく覚えてませんけど、確かここの(http://www2.big.or.jp/~osamu/Delphi/)Tipsかどこかに
そういうことが書いてあったような…。


kazu  2003-01-20 07:04:21  No: 2646

OnShowイベントで処理されては?


はし  2003-01-20 08:15:41  No: 2647

レスありがとうございます。

kazu さんの、親ウインドウ(MainForm) の OnShow イベントで行ったところ、うまくで
きたので報告します。この時 MainForm の  Visible プロパティを、Falseにしておきま
す。また、OnActive イベントでも同様にできました。アドバイスどうもありがとうござ
いました。

たかみ さんのいうサイトで、MDIに関するところを見ました。
http://130.158.124.192/~takeuchi/delphi/browse.cgi?index=002238&back=http%3A%2F%2F130%2E158%2E124%2E192%2F%7Etakeuchi%2Fdelphi%2Farticle%2F002%2F002238%2Ehtml
過去にもMLで同じ話題が出ていますが、話はD&Dで子ウインドウを開く方法に行ってしまっ
ていて有効な情報はありませんでしたが、今後、同じようなことをする人に参考にしても
らいたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加