80 likes | 329 Views
マルチフォーム. BCB では親 Form から子 Form を呼び出すことが出来る。 Unit1.cpp に子 From のヘッダー Unit2.h を インクルードしておく 親 Form から子 Form のメソッド Show() ShowModal() を使うことで呼び出せる。. マルチフォーム. Show() 子 Form は親 Form と独立して動作する。 OK ボタンや Cancel ボタンを押したときの 動作はプログラムで記述する. マルチフォーム. ShowModal() 子 Form が動作中は、親 Form は停止している。
E N D
マルチフォーム • BCBでは親Formから子Formを呼び出すことが出来る。 • Unit1.cppに子FromのヘッダーUnit2.hを インクルードしておく • 親Formから子Formのメソッド • Show() • ShowModal() を使うことで呼び出せる。
マルチフォーム • Show() 子Formは親Formと独立して動作する。 OKボタンやCancelボタンを押したときの 動作はプログラムで記述する
マルチフォーム • ShowModal() 子Formが動作中は、親Formは停止している。 OKボタンやCancelボタンは、そのプロパティ ModalResultの値をmrOkやmrCancelに設定 しておくと、戻り値としてこれらの値を返し、 子Formを閉じる。
マルチフォーム void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->ShowModal(); } void __fastcall TForm1::Button2Click(TObject *Sender) { Form2->Show(); }
マルチフォーム • Form間のデータのやり取り Formのpublicプロパティを使うことで やり取りできる
マルチフォーム • 例:Form2にpublicのAnsiStringDataを持たせる。 class TForm2 : public TForm { __published: // IDE 管理のコンポーネント TButton *Button1; TButton *Button2; TEdit *Edit1; void __fastcall Button1Click(TObject *Sender); private: // ユーザー宣言 public: // ユーザー宣言 __fastcall TForm2(TComponent* Owner); AnsiString Data; };
マルチフォーム • Form2で、Dataにデータを持たせる。 void __fastcall TForm2::Button1Click(TObject *Sender) { Data = Edit1->Text; }
マルチフォーム • Form1で、Form2のShowModalがmrOkのとき、 Form2のDataを読み取る。 void __fastcall TForm1::Button2Click(TObject *Sender) { if (Form2->ShowModal() == mrOk) Edit1->Text = Form2->Data; }