🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
2 messages
2 total messages Started by Terrmit Mon, 02 Feb 2009 18:43
[Lazarus] Dynamiczna forma i zdarzenie Click z Buttona
#92836
Author: Terrmit
Date: Mon, 02 Feb 2009 18:43
69 lines
2583 bytes
Witam,
Mam problem, z którym nie daję rady. Do tej pory
nie miałem potrzeby robić dynamicznych form, ale teraz
zaszła taka okoliczność.

Mam taką klasę formy:

TInsColForm = class(TForm)
     btOK   : TButton;
     //na formie jest więcej kontrolek, ale chciałem skrócić kod
     procedure btOKClick(Sender: TObject); //obsługa kliknięcia
   private
   public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
   published
end;

constructor TInsColForm.Create(AOwner: TComponent);
begin
   inherited Create(AOwner);
   //tu mój kod
   btOK := TButton.Create(Self);
   btOK.Parent := Self;
   btOK.Top  := 20;
   btOK.Left := 10;
   btOK.Caption := 'OK';
   btOK.ModalResult := mrOK;
   btOK.OnClick := btOKClick; // <---- błąd kompilacji
end;

destructor TInsColForm.Destroy;
begin
   FreeAndNil(btOK);
   //tu mój kod
   inherited Destroy;
end;

procedure TInsColForm.btOKClick(Sender: TObject);
begin
   ShowMessage('kliknieto btOK');
end;

Jak widać jest na nią dynamicznie położony Button.
Problem tkwi w tym, że nie mogę przypisać zdarzeniu
OnClick procedury do jego wykonania.
Dostaję komunikat błędu:
Error: Wrong number of parameters specified for call to "btOKClick"
Nie wiem dlaczego ten błąd się pojawia, skoro przy statycznej
formie nie było tego błędu. Jak należałoby w takim razie
oprogramować obsługę kliknięcia tego przycisku?

Jeszcze dodam wywołanie tej formy:
   fm := TInsColForm.Create(Self);
   fm.Position := poOwnerFormCenter;
   if fm.ShowModal = mrOK then begin
     ShowMessage('jest mrOK');
   end;
   FreeAndNil(fm);

Po kliknięciu OK powinienem zobaczyć najpierw
   ShowMessage('kliknieto btOK');
a potem
     ShowMessage('jest mrOK');

Mógłby ktoś pomóc, bo się pogubiłem już :/


Sławek
Re: [Lazarus] Dynamiczna forma i zdarzenie Click z Buttona
#92837
Author: Terrmit
Date: Mon, 02 Feb 2009 18:52
16 lines
1295 bytes
Witam ponownie,

Niezłe jajca. Męczę się z głupim problemem kilka godzin
szukając rozwiązania na googlach. Potem wreszcie decyduję
się napisać do Was po poradę i ... w tym momencie doznaję
olśnienia! Zapomniałem o "małpie"!?

   btOK.OnClick := @btOKClick; // <---- i nie ma błędu

Już się kilka razy złapałem na tą "małpę" i ciągle zapominam.
Ale jak widać wystarczy do Was napisać i coś się w mojej
"makówce" odblokowuje :p :D

Pozdrawiam,

Sławek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads