Forum: Programmieren allgemein
by himitsu,
15. Jul 2010
Das ist dann aber ein Delphiinterner "Hack", welcher nur mit den Interfaces von Delphi geht?
OK, also doch :)
Forum: Programmieren allgemein
by himitsu,
15. Jul 2010
Meinst du nicht "Ob ein unterstütztes Interface bestimmte Methoden bereitstellt" ?
Forum: Programmieren allgemein
by himitsu,
15. Jul 2010
Nee, Interface in Objekt geht (eigentlich) nicht, aber andersrum geht.
var Obj: TMyObj;
Intf: IMyIntf;
Intf2: IInterface;
Intf := Obj as IMyIntf;
// oder nur, da das Interface vom Ziel (der Intf-Variable) genommen wird
Intf := Obj;
Intf2 := Obj as IMyIntf;
Forum: Programmieren allgemein
by himitsu,
14. Jul 2010
Wenn man ein "Objekt" an eine Interface-Variable oder einen -Parameter übergibt,
dann führt Delphi automatisch eine Konvertierung durch, aber nur wenn das Objekt, genauer der Type der Objektvariable (die Objektvariable, bzw. der Objekt-Type bei .Create) dieses Interface unterstützt, sonst mekert schon der Compiler ... und wenn das Objekt dieses dann zur Laufzeit dann dennoch nicht kennt, dann...
Forum: Programmieren allgemein
by himitsu,
11. Jul 2010
Markus hat ja nun die Interna genannt.
- also der harte Cast ist schneller (fällt aber nur auf, wenn sehr schnell sehr oft geprüft werden muß), da es keine Prüfung gibt und das Objekt in der Variable einfach so genommen wird, als wäre die gewünschte Klasse drinnen.
(wenn vorher schonmal mit AS oder IS geprüft wurde, dann kann man dieses z.B. nutzen oder wenn man sich durch andere Maßnahmen...