V-ati intrebat vreodata cum ati putea crea din cod un buton ? Ati incercat vreodata ?
Uitati-va ce simplu e :
Buton := TButton.Create(Form1);
with Buton do
begin
left := 20;
top := 40;
Caption := 'I''m the best button';
Parent := Form1;
OnClick := ClickButton;
end;
Bineinteles, ClickButton e o procedura oarecare, care primeste un parametru
Sender : TObject, pusa sa se execute cand userul da click pe butonul tocmai creat.
Totusi, ce sa faci cu un singur buton ? Daca stii unde va trebui pus, il vei pune direct din design ... asa ca sa vedem cum cream
mai multe 
Eu am declarat doua variabile globale asa:
var but : array [1..100] of TButton;
N : Byte;
, la eventul OnMouseDown pe forma am scris :
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If N > 100
Then Exit;
inc(n);
but[n] := TButton.Create(Form1);
with but[n] do
begin
left := X;
top := Y;
Caption := IntToStr(X) + ' - ' + IntToStr(Y);
Parent := Form1;
OnClick := ClickButton;
end;
end;
, iar ClickButton urmeaza:
procedure TForm1.ClickButton(Sender : TObject);
begin
ShowMessage('Hello, my name is "' + (Sender as TButton).Caption + '".' + #13#10 + 'Nice to meet you too :))');
end;
Pentru pornirea, respectiv oprirea programului am scris inca doua evenimente, pentru a ma asigura ca totul merge bine:
procedure TForm1.FormCreate(Sender: TObject);
begin
N := 0;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var I : Integer;
begin
for i := 1 to n do
FreeAndNil(but[i]);
end;
Ca sa nu va chinuiti cu copy / paste si asignare de evenimente, aici e
sursa. Distractie placuta
