🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92836

[Lazarus] Dynamiczna forma i zdarzenie Click z Buttona

#92836
From: 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
Technical Details
Message-ID: <gm7etc$g2j$1@achot.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
From: Terrmit <terrmitv@poczta.onet.pl>
Newsgroups: pl.comp.lang.pascal
Subject: [Lazarus] Dynamiczna forma i zdarzenie Click z Buttona
Date: Mon, 02 Feb 2009 19:43:54 +0100
Organization: http://news.icm.edu.pl/
Lines: 69
Message-ID: <gm7etc$g2j$1@achot.icm.edu.pl>
NNTP-Posting-Host: chello089076219239.chello.pl
Mime-Version: 1.0
X-Trace: achot.icm.edu.pl 1233600236 16467 89.76.219.239 (2 Feb 2009 18:43:56 GMT)
X-Complaints-To: abuse@icm.edu.pl
NNTP-Posting-Date: Mon, 2 Feb 2009 18:43:56 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.19 (X11/20090105)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit