掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Lazarus2.2.2 で DLL(フォーム付き)のフォームが表示されません。 (ID:150411)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
追加です. > DLL のコードを例えば以下のようにしてみてください. あるいは以下のようにします. ===================================================== library SampleDLL; uses Forms, Interfaces, LCLType, Windows, Unit_formdll; function ShowFormDLL(AppHandle: HWND): TModalResult; stdcall; begin Application.Initialize; FormDLL := TFormDLL.Create(Application); try Result := FormDLL.ShowModal; finally FormDLL.Free; Application.terminate; end; end; exports ShowFormDLL; end. いずれにしても,DLL の Application のフォームとして動作しますから, 外部から ShowModal しても起動元のフォームは操作可能です. DLL 内で起動したフォームから,同じ DLL 内から起動するフォームであれば, ネット上のサンプルのように,通常の ShowModal と同じにできます. 呼び出し側で Form1.Enabled:= False; if ShowFormDLL(Handle) = mrOK then begin ShowMessage('OK'); end; Form1.Enabled:= True; ようにすれば 起動側のフォームの操作を不可にできますね (^^;), あるいは DLL 内で EnableWindow 関数で処理してもよろしいかと・・・
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.