Najlogičnije mi je bilo upotrijebiti tAction i dodjeliti mu .OnExecute = buttonOnClick;
U glavnom, ne radi mi. Pokušao sam napraviti jedan programčić s 2 gumba. Ako postavim na formu kontrolu: tActionList i njoj dodam Action, sve je ok, radi.
Ako u runtime keriram tActionList i tAction - ne radi...
ovo je kod programčića koji bi trebao nakon pritiska na btn1, na svaki F3 ispisati "btn 2":
Code:
var
Form1: TForm1;
a: TAction;
al: TActionList;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
al := TActionList.Create(nil);
al.State := asNormal;
a := TAction.Create(al);
a.ShortCut := TextToShortCut('F3');
a.Visible := true;
a.Enabled := true;
a.OnExecute := Button2Click;
a.ActionList := al;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage('btn 2');
end;
var
Form1: TForm1;
a: TAction;
al: TActionList;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
al := TActionList.Create(nil);
al.State := asNormal;
a := TAction.Create(al);
a.ShortCut := TextToShortCut('F3');
a.Visible := true;
a.Enabled := true;
a.OnExecute := Button2Click;
a.ActionList := al;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage('btn 2');
end;
U čemu griješim?