Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Inkompatible Typen: 'TPathListEvent' und 'Procedure'

  Alt 6. Jul 2017, 13:38
Delphi-Version: XE8
Hi zusammen

Irgendwie haben die Delphi-Events scheinbar etwas gegen mich. Zurzeit führe ich solch ein Ding neu ein. Dabei ist das Fehlen von Const-Deklarationen und ähnlichem schon Routine - will heissen, vor allem anderen untersuche ich mal die gemachten Deklarationen. Und das sollte es dan auch gewesen sein.
Sollte!!
Denn bei der Zuweisung des Eventhandlers zum Event (in Mainform.Create)
Delphi-Quellcode:
  FDMySQLDml.OnStartCategoryQuery := Self.DoOnStartCategoryQuery; // <== Keine Probleme
  Self.DlgFrameContainer1.PathFinderFrame1.OnPathListEvent := TFDMySQLDml.DoPathlistEvent;
meckert Delphi:
Zitat:
[dcc32 Fehler] CM_FirstUnit.pas(562): E2010 Inkompatible Typen: 'TPathListEvent' und 'Procedure''
Ich hab mir die Strukturen der Event-Deklaration und Implemetierung mal aufgeschrieben:
Zitat:
Deklarationen des Events:

Der Typ des Events im Pathfinderframe:
TPathListEvent = procedure(Sender:TObject; const Ordner: String; const Pathlist: TStringList) of Object;

Das private Feld des Events :
FOnPathListEvent: TPathListEvent;

Das Public-Property des Events
property OnPathListEvent: TPathListEvent read FOnPathListEvent write FOnPathListEvent;

Der Event wird gefeuert :
if Assigned(OnPathListEvent) then
OnPathListEvent(Sender, Ordner, Pathlist);

Deklaration des Eventhandlers:
procedure DoPathlistEvent(Sender: TObject; const Ordner: String;const Pathlist: TStringlist);

Implementation des Eventhanlers: (Procedurekopf)
procedure TFDMySQLDml.DoPathlistEvent(Sender: TObject; const Ordner: String;
const Pathlist: TStringlist);

Die Zuweisung des Eventhandlers an das Event im Mainform.Create:;
Self.DlgFrameContainer1.PathFinderFrame1.OnPathLis tEvent := TFDMySQLDml.DoPathlistEvent;
In dieser Oncreate sind mehrere Eventzuweisugnen mit identischem Aufbau vorhanden - umso weniger verstehe ich die Fehlermeldung...
Was ist da falsch?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat