名前 題名 ▼ Mr.XRAYさん > ▼ Syakeさん こんにちは > > > マスターにはわかりません.(^^ゞ > > といいつつ,ちょっとやって見ました. > > (1) Formを生成するDLLを作成.FormDll.Dll というのを作成 > (2) メインフォームのForm1でDLL内の以下のルーチンを定義して利用 > function FormShow :TForm; stdcall; external 'FormDLL.DLL'; > procedure FormClose; stdcall; external 'FormDLL.DLL'; > (3) プロジェクトに新規フォーム追加.Form2とする. > (4) Form1にボタンを2つ追加. > 1つはDLL内のFormShowを実行してDLL内のFormを表示(Showメソッド使用) > (5) 2つ目はForm2を表示. > (6) Form2にボタンを1つ配置. > > コードは以下.なおFormShowを実行することにより,DLL内部でフォームを > Createしています. > > public > AForm : TForm; > ........ > procedure TForm1.Button1Click(Sender: TObject); > begin > FormShow; > end; > > procedure TForm1.Button2Click(Sender: TObject); > begin > Form2.Show; > end; > > > procedure TForm2.Button1Click(Sender: TObject); > begin > if Assigned(Form1.AForm) then begin > Form1.AForm.Close; > FreeAndNil(Form1.AForm); > end; > end; > > こんなやり方がいいのかどうかは不明.ちょっとわかりにくい説明でゴメン > なさい. > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link