TFrameに独自のイベントを追加し、そのフレームを貼り付けた
フォームで、追加したイベントを発生することはできないでしょうか?
可能です、
例えば
//フレーム
procedure TFrame2.Button1Click(Sender: TObject);
begin
Showmessage('');
end;
//フレームを持つフォーム
procedure TForm1.Button1Click(Sender: TObject);
begin
//Frame21:TFrame2
Frame21.Button1.Click;
end;
メラトニンさん、ありがとうございます。
ちょっと違うと思うのですが、上記例ですと、
TFrame2.Button1Click(Sender: TObject);
が発生した直後に、TForm1上のイベントが
自動的に発生するようにしたいのです。
procedure TFrame2.Button1Click(Sender: TObject);
begin
Form1.TuikasitaEvent;
end;
って事ですか?
@Enumさん、ありがとうございます。
そうです!これでできそうです!
ですが、・・・
これですと、フレームのコード内に uses Unit1;
などと記述しないといけませんよね。
色々なプロジェクトでこのフレームを利用したい場合、
これですと具合が悪い場合があり、再利用しづらいです。
何か良い方法はないでしょうか?
呼びたいイベントを
frameに
機能を追加して
メソッドのアドレスとかを最初から登録できるようにしていればいいだろ
if ◎ <> nil then
>色々なプロジェクトでこのフレームを利用したい場合、
>これですと具合が悪い場合があり、再利用しづらいです。
フレーム(TFrame)というのは,他のコントロールを配置できる特別なコンポーネントです.
これをテンプレートやリポジトリに登録して再利用,つまり,コンポーネント
として利用できます.したがって,配置したプロジェクトのフォーム上で,
このフレームのボタンのイベントを作成して,@Enumさんの提示したように
利用できます.つまり,このイベントのコード配置したフォームごとに別
のコードとすることができます.つまり再利用可能ということですね.
フォームに配置するコンポーネントとして利用できる.これがフレームの
特徴です.
ツイート | ![]() |