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
Author: Terrmit
Date: Mon, 02 Feb 2009 18:43
Date: Mon, 02 Feb 2009 18:43
69 lines
2583 bytes
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
Author: Terrmit
Date: Mon, 02 Feb 2009 18:52
Date: Mon, 02 Feb 2009 18:52
16 lines
1295 bytes
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