![]() |
TObject = Object ?
Hi,
Ich habe grad das Object (neu)entdeckt. Wenn man Klassen so definiert:
Delphi-Quellcode:
dann ist hat die Klasse wie records keine Eigenschaften. ABER sie kann proceduren beinhalten...
TKlasse = Object
Und man hat nicht das lästige Zeug von TObject (ob lästig oder notwendig sei mal dahingestellt :mrgreen:) :) Eigentlich die perfekte Klasse :D So jetzt zur Hauptfrage: Jedenfalls hatte ich dann die Theorie das TObject von Object abgleitet sein könnte. Was ich logisch finde. Aber in der Definition steht
Delphi-Quellcode:
Aber wie kann das sein ?
TObject = class
Delphi-Quellcode:
:arrow:
TIrgendeineKlasse = class
<=> TIrgendeineKlasse = class(TObject)
Delphi-Quellcode:
Aber das ist ein noch größerer Unsinn..
TObject = class(TObject)
Gruß Michi |
Re: TObject = Object ?
War die Verwendung von object nicht früher beim objektorientieren TP State-of-the-Art und später dann in Delphi kam class?
Und
Delphi-Quellcode:
sind das Gleiche.
MyObject = class
//und MyObjectZwo = class(TObject) |
Re: TObject = Object ?
Zitat:
Und da
Delphi-Quellcode:
gilt, gilt genauso auch
TObject = class
Delphi-Quellcode:
was aber Unsinn ist.
TObject = class(TObject)
|
Re: TObject = Object ?
Hi,
Ja, kann Ultimator natürlich nur zustimmen, möchte hier aber dann auch gleich auf die Forum-Suche verweisen! Da findest du schon genügend zu Object vs. TObject. Das eine Klasse ohne Angabe von einer speziellen Klasse immer von TObject abgeleitet wird ist natürlich einfach nur dem Compiler zu verdanken, der einfach nachschauen kann ob es eine Basisklasse gibt (sonst TObject). Natürlich kann der auch mit der Definition von TObject umgehen ohne sich hier rekursiv einen Kreis zu bauen. Gruß Der Unwissende |
Re: TObject = Object ?
TObject befindet sich nicht umsonst in der Unit, in der die Hochsprache aufhört und die Compiler-Magic anfängt :zwinker: .
|
Re: TObject = Object ?
Tatsächlich ist TObject auch von class abgeleitet. Das ganze steht in der unit system die bei jeden Delphi Projekt dabei ist, somit ist TObject nicht von Object abgeleitet.
Delphi-Quellcode:
TObject = class
constructor Create; procedure Free; ... destructor Destroy; virtual; end; |
Re: TObject = Object ?
ABER: Nach euren Theorien müsste ja bei folgendem Beispiel THallo von class abgeleitet sein und nicht von TObject...
Delphi-Quellcode:
unit Unit1;
interface // KEINE Uses.. kein TObject und nix type THallo = class Hallo: String; procedure SetHallo; end; implementation { THallo } procedure THallo.SetHallo; begin Hallo := 'Hallo'; Self.Destroy; // Und alle anderen TObject Methoden sind verfügbar end; end. |
Re: TObject = Object ?
Moment, hier scheinen manche etwas zu verwechseln:
![]() Object ist ein Schlüsselwort, das noch aus Pascal-Zeiten stammt und sowas wie ein vorreiter des class-Keywords war. Object hat also nix mit TObject zu tun, und man kann auch nicht eine Klasse von object ableiten. Lasst euch nicht durch die ähnliche Namensgebung drausbringen ;) Und bezüglich TObject/class/CompilerMagic: Man kann nicht 'von class ableiten'. TObject ist eine Klasse, welche stinknormal implementiert wurde. CompilerMagic tritt ein, wenn eine Klasse (außer TObject) deklariert wird, die keine andere Klasse erbt: Dann wird nämlich automatisch TObject vererbt. greetz Mike |
Re: TObject = Object ?
Aber ich meine es wäre logisch wenn TObject = Object wäre und das Object hätte dann halt die ganzen Methoden verpasst bekommen und dann wurden die anderen folgenden Komponenten halt von TObject abgleitet. Was ist denn TObject sonst ?
|
Re: TObject = Object ?
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
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 by Thomas Breitkreuz