Zdarzenia komponentów twrzonych dynamicznie

0

Chcę wykonywać różne polecenia po kliknięciu dynamicznie stworzonych buttonów.
Napisałem więc kod a właściwie skopiowałem go z wikibooksi:
Link: https://pl.wikibooks.org/wiki/Delphi/Dynamiczne_tworzenie_komponent%C3%B3w
Oto kluczowe fragmenty kodu:

Interface
uses ..StdCtrls;
..
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure KlikPrzycisku(Sender: TObject);
..
implementation

    procedure TForm1.KlikPrzycisku(Sender: TObject);
    begin
          Label1.Caption:=TButton(Sender).Caption;
    end;

   procedure TForm1.FormCreate(Sender: TObject);
       var   i,n: Integer; 
   begin
        n:=10; 
        for i:=1 to n do
               with TButton.Create(self) do 
	       begin
                      Width:=140;
                      Height:=40;
                      Left:=10;
                      Top:=10+i*(Height+10); 
                      Caption:='Przycisk '+IntToStr(i); 
                      Parent:=self;
                      Visible:=True;
                      OnClick:=@KlikPrzycisku; 
                end;
   end;

Niestety kompilator kwestionuje ostatnią linię to znaczy OnClick:=@KlikPrzycisku; z komunikatem:
Variable required. Zatem jaką to zmienną potrzebuje kompilator i jak miałaby przedstawiać się ostatnia linia kodu??

1

Usuń operator @:

OnClick := KlikPrzycisku;

A dlaczego w tym artykule sugerują użycie operatora adresu – nie wiem. Być może nowsze wersje Delphi wymagają adresu metody, ale po takie informacje to do dokumentacji.

0
furious programming napisał(a):

Usuń operator @:

OnClick := KlikPrzycisku;

A dlaczego w tym artykule sugerują użycie operatora adresu – nie wiem. Być może nowsze wersje Delphi wymagają adresu metody, ale po takie informacje to do dokumentacji.

Wielkie Dzięki Teraz działa.....

1 użytkowników online, w tym zalogowanych: 0, gości: 1