Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: CallBack lässt Object vergessen

  Alt 12. Nov 2006, 14:04
Ich glaube, ich konnte das Problem lösen. Wie unter http://www.swissdelphicenter.ch/de/showcode.php?id=1671 nachzulesen ist,

Zitat:
// Methodenzeiger in Funktionszeiger umwandeln

// Oft ist es nötig, einer API-Funktion einen Funktionszeiger, der auf eine Callbackfunktion zeigt, zu
// übergeben. Leider ist ein Funktionszeiger mit Methodenzeigern inkompatibel, und so ist es zunächst
// unmöglich, eine Methode als Callback anzugeben.
// Man kann zwar einen Methodenzeiger auf die Art "@TKlasse.EineMethode" in einen Funktionszeiger casten,
// allerdings darf man dann in dieser Methode dann auf keine Variablen (und auch auf Methoden, die diese
// Variablen benutzen) der Klasse zugreifen, da diese immer Instanzgebunden sind und man in diesem Falle
// keine Instanz angegeben hat (ähnlich einer Klassenmethode).
Darf ich keine Prozedur verwenden, sondern nur eine Funktion. Absolute unsinnig von Delphi, aber "wenn's schä' macht"...

Änderungen:
FChangeCausedbyObjectB entfällt.

FObjectB.CallBackList.Add(Pointer(ChangeCausedbyOb jectB));

function TObjectA.ChangeCausedbyObjectB: Boolean;
  Mit Zitat antworten Zitat