Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi proceduren zuweisen in eigener klasse (https://www.delphipraxis.net/95299-proceduren-zuweisen-eigener-klasse.html)

Chaosente 4. Jul 2007 20:33


proceduren zuweisen in eigener klasse
 
Also ich hab zwei klassen.
Und im constructor meiner einen klasse will ich der procedure einer anderen klasse eine aus meiner klasse zuteilen.

Klasse1:
Delphi-Quellcode:
(...)
  procedure AIClick(x,y:integer);
  end;

procedure TKKSPielfeld.AIClick(x,y:integer);
Klasse2: (andere unit)
Delphi-Quellcode:
(..)
  procedure Click(x,y:integer);
  end;


procedure TKKPLayer.Click(x,y:integer);
begin

end;
(...)
Und im Konstruktor von Klasse 1:
Delphi-Quellcode:
if (..)
  then FPLayer2.click:=AIClick;
Er gibt mir aber folgenden Fehler Code aus:
[Fehler] KKSpielfeld.pas(105): E2035 Nicht genügend wirkliche Parameter

mkinzler 4. Jul 2007 20:48

Re: proceduren zuweisen in eigener klasse
 
Du kannst das nicht so machen. Du mußst Click als Methoden-Property deklarieren.

Chaosente 4. Jul 2007 20:51

Re: proceduren zuweisen in eigener klasse
 
kapier ich nciht kannste das bitte genauer erklären?

DeddyH 4. Jul 2007 20:57

Re: proceduren zuweisen in eigener klasse
 
Mal schnell dahergetippt:
Delphi-Quellcode:
type TMyClickEvent = procedure(Sender: TObject; X,Y: integer) of object;
TMyClass = class(TObject)
  ...
  FOnClick: TMyClickEvent;
  ...
  published
    property OnClick: TMyClickEvent read FOnClick write FOnClick;
  end;
Und im Konstruktor dann FOnClick auf nil setzen.

P.S.: Das ist nur ein Beispiel, Du kannst natürlich ganz andere Parameter haben.

mkinzler 4. Jul 2007 20:59

Re: proceduren zuweisen in eigener klasse
 
Delphi-Quellcode:
...
private
  FonClick: TNotifyEvent;
  procedure AIClick(x,y:integer);
...
property OnClick: TNotifyEvent read FonClick write FonClick;

Apollonius 4. Jul 2007 21:06

Re: proceduren zuweisen in eigener klasse
 
Schlage einfach mal Funktionszeiger nach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz