Ich habe eine
Unit namens: Zniffer.pas
Delphi-Quellcode:
TZniffer = class(TObject)
private
[...]
public
[...]
OnPacket: procedure(Data: pointer; recvbytes: Word; utickcount: Int64) of object;
[...]
So nun habe ich eine eigene
Unit geschrieben namens ZnifferCreate. Dort gibt es eine Prozedur wie folgt:
Delphi-Quellcode:
procedure CreateZniffer;
begin
[...]
Fzniffer := TZniffer.Create;
Fzniffer.OnPacket := ReadPacket;
[...]
end;
Funktioniert prima, bis auf das ich bei OnPacket und Readpacket eine Meldungbekomme:
Zitat:
[Fehler] ZnifferCreate.pas(162): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Jedoch verstehe ich nicht wieso eine Meldung kommt denn in meiner eigenen
Unit ZnifferCreate habe ich auch folgende Prozedur:
procedure ReadPacket(Data: pointer; recvbytes: Word; utickcount: Int64);
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.