Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Neues On... Ereignis zuweisen

  Alt 22. Dez 2009, 23:09
Ein kleiner Nachtrag um meine Theorie zu bestätigen:

Delphi-Quellcode:

uses
  SysUtils;

type
  TNotifyEvent = procedure(Sender: TObject) of object;

procedure test(Self: Pointer; Sender: TObject);
begin
  writeln(Integer(self));
  writeln(Integer(Pointer(Sender)));
end;

var
  m: TMethod;
  ne: TNotifyEvent;

begin
  m.Code := @test;
  m.Data := Pointer(100);
  TNotifyEvent(m)(Pointer(200));
  Readln;
end.
Ausgabe:
Code:
100
200
Eigentlich reicht es also, zu seiner Prozedur einen "self"-Parameter des Typs "Pointer" hinzuzufügen, und schon kann man diese auch als Ziel für Methodenzeiger verwenden. Allerdings ist das ziemlich "tricky" - um es mal so auszudrücken.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat