Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit Record-Parametern an MethodenPointer bzw. FunktionsPointer

  Alt 20. Jun 2021, 02:31
Irgendwer (du) quetscht grob fahrlässig einen Funktions-Zeiger in eine Methoden-Zeiger-Variable,
wobei natürlich die Signatur überhaupt nicht kompatibel sind.

Wenn sich jetzt jemand wundert, dass die übergebenen Parameter nicht stimmen, dann ist er selbst Schuld,
weil er den impliziten (unsichtbaren) ersten Parameter "Self" ignoriert hat.

Function MyBösartigeFalscheMethodenFunktion(Self: TObject; CONST Rec: DoubleDouble): DoubleDouble;



Und nun rate mal, wie TMethod.Data in die Funktion Methode rein kommt.





Zitat:
trotzdem korrekt! ???
Ja klar, weil muß ja korrekt sein,
da Anzeige-Werte <> Rückgabe-Werte.

Zitat:
Delphi-Quellcode:
  WriteLn('Rec.X[0] = ', Rec.X[0]);
  WriteLn('Rec.X[1] = ', Rec.X[1]);

  ClearRec(Result); <<<<<<<<<<<<<<<<<<<<<<<<<

  Result.X[0]:= Rec.X[0]*Rec.X[0];
  Result.X[1]:= Rec.X[1]*Rec.X[1];
End;{MyFunktion}
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jun 2021 um 02:38 Uhr)
  Mit Zitat antworten Zitat