Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Jun 2021
Darum auch erwähnt // ... (nicht direkt als VAR ... muß einen TYPE haben) :zwinker:
Eine "Methode" kann nur über ein Objekt genutzt werden, also Ref_Global := Obj_Global.OrdinaryMethod;,
aber als "Klassen-Methode" geht es auch direkt über den Typ-Bezeichner.
Type
TTest = class
Class Function OrdinaryMethod(CONST Rec: DoubleDouble): DoubleDouble;
Forum: Object-Pascal / Delphi-Language
by himitsu,
22. Jun 2021
Nur beim Vergleichen von Referenzen muß man nachdenken, da beim ReferenceTo intern mit einem "geheimen" Interface gearbeitet wird, wo sich nicht prüfen lässt was da drin für ein Zeiger liegt,
also ein if meineVariable = @eineFunktion then geht so nicht mehr, aber Zuweisen oder Ausführen gehen ganz einfach.
Forum: Object-Pascal / Delphi-Language
by himitsu,
21. Jun 2021
Bei "reference to procedure" werden intern quasi die Generics verwendet ... du selbst hast hier nichts damit zu tun ... macht alles der Compiler von selbst.
Forum: Object-Pascal / Delphi-Language
by himitsu,
21. Jun 2021
Oder die Generics -> reference to
Alle "offiziellen" Möglichkeiten, ohne an der automatischen Typbehandlung rumzupfuschen:
type
TTest = class
function A(): Boolean;
function B(): Boolean; virtual; // bzw. overload oder auch dynamic
class function C(): Boolean;
class function D(): Boolean; virtual; // bzw. overload oder auch dynamic
class function E(): Boolean;...
Forum: Object-Pascal / Delphi-Language
by himitsu,
20. Jun 2021
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:...