フレームにイベントを追加


歳三  2005-07-08 23:33:06  No: 16267

TFrameに独自のイベントを追加し、そのフレームを貼り付けた
フォームで、追加したイベントを発生することはできないでしょうか?


メラトニン  2005-07-09 18:22:05  No: 16268

可能です、
例えば
//フレーム
procedure TFrame2.Button1Click(Sender: TObject);
begin
  Showmessage('');
end;
//フレームを持つフォーム
procedure TForm1.Button1Click(Sender: TObject);
begin
  //Frame21:TFrame2
  Frame21.Button1.Click;
end;


歳三  2005-07-11 17:54:47  No: 16269

メラトニンさん、ありがとうございます。
ちょっと違うと思うのですが、上記例ですと、
  TFrame2.Button1Click(Sender: TObject);
が発生した直後に、TForm1上のイベントが
自動的に発生するようにしたいのです。


@Enum  2005-07-11 18:12:36  No: 16270

procedure TFrame2.Button1Click(Sender: TObject);
begin
  Form1.TuikasitaEvent;
end;

って事ですか?


歳三  2005-07-11 18:30:41  No: 16271

@Enumさん、ありがとうございます。
そうです!これでできそうです!

ですが、・・・

これですと、フレームのコード内に uses Unit1;
などと記述しないといけませんよね。
色々なプロジェクトでこのフレームを利用したい場合、
これですと具合が悪い場合があり、再利用しづらいです。
何か良い方法はないでしょうか?


aq  2005-07-11 19:27:36  No: 16272

呼びたいイベントを
frameに
機能を追加して
メソッドのアドレスとかを最初から登録できるようにしていればいいだろ

if ◎ <> nil then


Mr.XRAY  URL  2005-07-12 04:23:40  No: 16273

>色々なプロジェクトでこのフレームを利用したい場合、
>これですと具合が悪い場合があり、再利用しづらいです。

フレーム(TFrame)というのは,他のコントロールを配置できる特別なコンポーネントです.
これをテンプレートやリポジトリに登録して再利用,つまり,コンポーネント
として利用できます.したがって,配置したプロジェクトのフォーム上で,
このフレームのボタンのイベントを作成して,@Enumさんの提示したように
利用できます.つまり,このイベントのコード配置したフォームごとに別
のコードとすることができます.つまり再利用可能ということですね.

フォームに配置するコンポーネントとして利用できる.これがフレームの
特徴です.


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

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






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