Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TTree = object Was ist das? (https://www.delphipraxis.net/86971-ttree-%3D-object-ist-das.html)

Alexander Roth 21. Feb 2007 17:13


TTree = object Was ist das?
 
Hi,

also ich hatte ja gedacht ich kenne mich a bissel in OOP aus, doch nun sehe ich solch eine Deklaration, und sie lässt sich problemlos kompilieren.
Delphi-Quellcode:
  TTree = object
    Position : TVector;
    Rotation : TGLFloat;
    Size    : TGLFloat;
    procedure Draw;
  end;
In der OH ist nix und in meinem Delphi Buch steht nur:
"object | ...Einheit aus Daten und Methoden (durch class abgelöst!)"

Doch in dem Totuial alphamask (aus delphigl.de) muss das "Objekt" (Tree[0]) vom Typ TTree nicht creieren.

Also: Was ist das genau?

Gruß Alexander

jfheins 21. Feb 2007 17:14

Re: TTree = object Was ist das?
 
Das ist iirc sowas wie ne Klasse, die es nur einmal gibt, und die schon created ist. Bzw. sowas wie ein record, der Methoden enthalten kann.

So ne Mischung halt :mrgreen:

Alexander Roth 21. Feb 2007 17:18

Re: TTree = object Was ist das?
 
Und was meint das Buch damit:
Zitat:

Zitat von Alexander Roth
"object | ...Einheit aus Daten und Methoden (durch class abgelöst!)"

Ist das irgendwie schlechter Programmierstil, oder so?

Gruß Alexander

IngoD7 21. Feb 2007 17:28

Re: TTree = object Was ist das?
 
D7 zumindest hat es sehr wohl in der Hilfe stehen:

Zitat:

Objekttypen

Als Alternative zu Klassentypen können mit der folgenden Syntax auch Objekttypen deklariert werden:

type Objekttypname = object (VorfahrObjekttyp)
Elementliste
end;

Objekttypname ist ein beliebiger gültiger Bezeichner, (VorfahrObjekttyp) ist optional, und Elementliste definiert die Felder, Methoden und Eigenschaften der Klasse. Wird kein VorfahrObjekttyp angegeben, hat der neue Typ keinen Vorfahren. Bei Objekttypen können Elemente nicht als published deklariert werden.

Da Objekttypen nicht von TObject abgeleitet sind, verfügen sie über keine integrierten Konstruktoren, Destruktoren oder andere Methoden. Instanzen können mit der Prozedur New erstellt und mit Dispose freigegeben werden. Sie können Variablen eines Objekttyps aber auch einfach wie bei einem Record-Typ deklarieren.

Objekttypen werden nur aus Gründen der Abwärtskompatibilität unterstützt. Ihre Verwendung ist in neuen Anwendungen nicht zu empfehlen.

Alexander Roth 21. Feb 2007 17:34

Re: TTree = object Was ist das?
 
Zitat:

Zitat von IngoD7
Zitat:

Ihre Verwendung ist in neuen Anwendungen nicht zu empfehlen.

Schade. Die sehen so praktisch aus.

Gruß Alexander

pitti platsch 21. Feb 2007 17:37

Re: TTree = object Was ist das?
 
bei turbo pascal gabs noch kein "class", da hieß das "object". und gerade am anfang von delphi war abwärtskompatibilität wichtig, denk ich mal.
außerdem kommt "object" in dern formulardateien zur anwendung (einfach mal als text anzeigen lassen).

uligerhardt 21. Feb 2007 17:39

Re: TTree = object Was ist das?
 
Zitat:

Zitat von Alexander Roth
Schade. Die sehen so praktisch aus.

Für einfache Sachen kann man objects auch verwenden, z.B. eine Klasse, die einen 3D-Punkt kapselt o.ä. Wir verwenden sie auf diese Art seit Langem ohne große Probleme. Wenn du nach "old style object delphi" im Usenet googelst, findest du mehr Lesestoff.

HTH, Uli.

uligerhardt 21. Feb 2007 17:41

Re: TTree = object Was ist das?
 
Zitat:

Zitat von pitti platsch
außerdem kommt "object" in dern formulardateien zur anwendung (einfach mal als text anzeigen lassen).

Ja, oder bei procedure of object. Das hat aber gar nichts mit dem "object" aus dem Originalposting zu tun.

uligerhardt 21. Feb 2007 17:45

Re: TTree = object Was ist das?
 
BTW: In neueren Delphi-Versionen gibt es auch "Records mit Methoden" aka "advanced records". Die werden aber nach meiner Erfahrung vom Compiler schlechter unterstützt als die pösen, alten objects. :twisted:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.

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