Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ole Automation? Variants? Was ist das?

  Alt 24. Dez 2013, 15:14
Zu Variants - meistens wird das in Verbindung mit Ole Objekten verwendet; ich wusste z.B. nicht, dass Variants wie Klasseninstanzen behandelt und beliebige (Ole) Methoden darüber aufgerufen werden können.
Das ist nur bedingt richtig. Ein Variant kann verschiedene Datentypen enthalten. Integer, Double, Boolean usw. aber unter anderem auch Objekte und Interfaces. Wenn ein OLE-Interface (genauer ein IDispatch) in einem Variant gespeichert ist, dann kann ich auf die Interface-Methoden einfach durch die Punkt-Notation zugreifen. Allerdings wird dabei erst zur Laufzeit geprüft, ob die entsprechende Methode auch tatsächlich existiert.

Der folgende Code wird also vom Compiler durchgelassen, führt aber zu einem Laufzeitfehler:

Delphi-Quellcode:
var
  V: Variant;
begin
  V := 1;
  V.Hurz;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat