考えてみたのですが(本当か?)
やっぱり,生成した子コンポにイベントを割り当てのが一番のような
気がします.どうせ生成コードを書かなければならないのですから.
こんな感じですね.
動作確認環境は,Windows XP(SP3) + Delphi XE
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
APanel : TPanel;
procedure OnPanelChildChick(Sender: TObject);
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
APanel := nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if APanel = nil then begin
APanel := TPanel.Create(Self);
APanel.Parent := Self;
APanel.ParentBackground := False;
APanel.Color := clSkyBlue;
APanel.SetBounds(30, 50, 200, 200);
with TButton.Create(Self) do begin
Parent := APanel;
Name := 'AAA';
OnClick := OnPanelChildChick;
SetBounds(50, 50, 100, 40);
end;
with TButton.Create(Self) do begin
Parent := APanel;
Name := 'BBB';
OnClick := OnPanelChildChick;
SetBounds(50, 100, 100, 40);
end;
end;
end;
procedure TForm1.OnPanelChildChick(Sender: TObject);
begin
Application.MessageBox(PChar(TControl(Sender).Name), '情報');
end;
|