Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Variable as Klasse - Wann verwenden (https://www.delphipraxis.net/152892-variable-klasse-wann-verwenden.html)

himitsu 15. Jul 2010 06:55

AW: Variable as Klasse - Wann verwenden
 
Zitat:

Zitat von Mschmidt (Beitrag 1035316)
ich dachte mir, wenn Sender ein Interface implementiert kann man ohne Prüfung dieses verwenden, statt typecasting.
oder?

Zitat:

Zitat von Stevie (Beitrag 1035365)
@Himi: Supports ist für Interfaces und hat mit dem as Operator eigtl nix zu tun, du kannst as nichtmal mit einem Interface benutzen,

Nee, Interface in Objekt geht (eigentlich) nicht, aber andersrum geht.
Delphi-Quellcode:
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;
// hier würde dagegen in Intf2 nur IInterface von Obj drinstecken
Intf2 := Obj;
Zitat:

Zitat von Stevie (Beitrag 1035365)
allerhöchstens eine Interface Variable wieder auf eine Klasse umcasten geht mit Delphi 2010.

:shock: werd ich dann mal testen, aber vom Wesen der Interfaces her, gibt es eigentlich kein direktes Zurück.
(hab mir bisher damit beholfen, daß ich im Interface eine Methode implementiert hab, ala GibMitBitteDeinInneresObjekt)

mkinzler 15. Jul 2010 06:57

AW: Variable as Klasse - Wann verwenden
 
Man kann aber per Interface ermitteln, ob das Objekt bestimmte Methoden unterstützt

himitsu 15. Jul 2010 07:08

AW: Variable as Klasse - Wann verwenden
 
Zitat:

Zitat von mkinzler (Beitrag 1035370)
Man kann aber per Interface ermitteln, ob das Objekt bestimmte Methoden unterstützt

Meinst du nicht "Ob ein unterstütztes Interface bestimmte Methoden bereitstellt" ?

mkinzler 15. Jul 2010 07:20

AW: Variable as Klasse - Wann verwenden
 
Ob die Klasse eines Objektes ein Interface implementiert, welches die gewünschte Methode beinhaltet

Stevie 15. Jul 2010 07:45

AW: Variable as Klasse - Wann verwenden
 
Zitat:

Zitat von himitsu (Beitrag 1035368)
:shock: werd ich dann mal testen, aber vom Wesen der Interfaces her, gibt es eigentlich kein direktes Zurück.
(hab mir bisher damit beholfen, daß ich im Interface eine Methode implementiert hab, ala GibMitBitteDeinInneresObjekt)

Ging vor Delphi 2010 auch mit nem Hack (hat Hallvard Vassbotn mal vor Urzeiten gebastelt und ist auch in der JCL enthalten).
Seit Delphi 2010 aber wie gesagt offiziell vom Compiler unterstützt.

himitsu 15. Jul 2010 07:57

AW: Variable as Klasse - Wann verwenden
 
Zitat:

Zitat von Stevie (Beitrag 1035377)
...

Das ist dann aber ein Delphiinterner "Hack", welcher nur mit den Interfaces von Delphi geht?

[edit]
Zitat:

Diese Typumwandlung gilt für Interfaces, die aus Delphi-Objekten ermittelt wurde
OK, also doch :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz