マルチフォーム • 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のAnsiString Dataを持たせる。 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; }
© Copyright 2024 ExpyDoc