Ereignisbehandlung einklinken

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
lazarus_newbee
Beiträge: 42
Registriert: So 5. Sep 2010, 14:09
OS, Lazarus, FPC: Win7 (L 0.9.28.2 FPC 2.4.0)
CPU-Target: 32Bit
Wohnort: Erfurt

Ereignisbehandlung einklinken

Beitrag von lazarus_newbee »

Hallo zusammen!

Ich habe eine Klasse von TCustomControl abgeleitet.
Inzwischen klappt das meiste schon ganz ordentlich.

Jetzt wollte ich für OnEnter eine Ereignisbehandlungs-Routine zuordnen.

Code: Alles auswählen

type TSpielstein = class(TCustomControl)
...
  procedure DoEnter(Sender:TObject);
...
end;
...
implementation
...
procedure TSpielstein.DoEnter(Sender:TObject);
begin
...
end;
 
procedure TSpielstein.Create(...);
begin
...
  OnEnter:=DoEnter;
end;
Beim Compilieren kommt folgende Fehlermeldung:

Code: Alles auswählen

spielstein.pas(40,19) Error: Wrong number of parameters specified for call to "DoEnter"

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Ereignisbehandlung einklinken

Beitrag von theo »

Verschiedenes:
Die eig. Antwort ist hier:
http://wiki.lazarus.freepascal.org/Code ... ranstellen" onclick="window.open(this.href);return false;

Aber: eigentlich macht man das in der Klasse nicht, dass man eigene On... verwendet.
Man überschreibt besser die entspr. Methode:

type TSpielstein = class(TCustomControl)
...
procedure DoEnter; override; //gibt's schon in den Vorfahren!
...

procedure TSpielstein.DoEnter;
begin
inherited DoEnter;
end;

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2825
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Ereignisbehandlung einklinken

Beitrag von m.fuchs »

Code: Alles auswählen

OnEnter:=@DoEnter;
Du möchtest ja einen Zeiger auf deine Prozedur DoEnter der Eigenschaft OnEnter zuweisen. Deswegen der @-Operator.
Bei deinem Code würde deine Prozedur aufgerufen und ihr Rückgabewert an OnEnter zugewiesen werden (was ja nicht klappt weil es eine Prozedur ist). Und für diesen Aufruf fehlt der Parameter Sender wie der Compiler richtig bemängelt.

hth
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

lazarus_newbee
Beiträge: 42
Registriert: So 5. Sep 2010, 14:09
OS, Lazarus, FPC: Win7 (L 0.9.28.2 FPC 2.4.0)
CPU-Target: 32Bit
Wohnort: Erfurt

Re: Ereignisbehandlung einklinken

Beitrag von lazarus_newbee »

Also Eure Arbeitsgeschwindigkeit ist schon beeindruckend.
Ich hab das gleich umgesetzt.
Danke Euch

lazarus_newbee
Beiträge: 42
Registriert: So 5. Sep 2010, 14:09
OS, Lazarus, FPC: Win7 (L 0.9.28.2 FPC 2.4.0)
CPU-Target: 32Bit
Wohnort: Erfurt

Re: Ereignisbehandlung einklinken

Beitrag von lazarus_newbee »

... Hab ein neues Thema aufgemacht

Antworten