Tutoriale Linux, Tutoriale Programare, Tutoriale retele, tutoriale photoshop

V-ati intrebat vreodata cum ati putea crea din cod un buton ? Ati incercat vreodata ?

Uitati-va ce simplu e :

Cod:

  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 :D

Eu am declarat doua variabile globale asa:

Cod:

var but : array [1..100] of TButton;
    N : Byte;

, la eventul OnMouseDown pe forma am scris :

Cod:

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:

Cod:

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:

Cod:

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 :)

Ethical hacking and programming community