![]() |
von Tlist ableiten
Ich würde gerne eine Listenklasse die nur eine bestimmte Klasse aufnimmt.
Um genau zu sein eine Liste die den Typ Tplayer beherbergt. (Tplayer ist von Tobject abgeleitet) Nur wie mache ich das? - mir wär vielleicht auch schon geholfen wenn ich ein beispiel sehe in dem von Tlist abgeleitet wurde. |
TMeinelist (TList)
procedure meinadd ( Pointer : TPlayer ); end; PS: Alle Klassen sind von TObject abgeleitet |
stimmt nicht ich kann auch komplett eine neue Klasse außerhalb der VCL hierachie erstellen
|
Zitat:
...:cat:... |
warum konnt ich dann ne Klasse
Delphi-Quellcode:
erstellen?
TmyClass = class
private id:byte; name:string; . . public . . constructor create; destructor destroy; end; |
Weil Delphi die Klasse TObject automatisch erbt, wenn keine angegeben wird - warum wohl sonst ;)
Zitat:
Delphi-Quellcode:
P.P.S.: Das TObject nicht abgeleitet wird liegt an der, lt. Borland, Compiler-Magic. ;)
// DIE TOBJECT DEFINITION
TObject = class constructor Create; procedure Free; class function InitInstance(Instance: Pointer): TObject; procedure CleanupInstance; function ClassType: TClass; class function ClassName: ShortString; class function ClassNameIs(const Name: string): Boolean; class function ClassParent: TClass; class function ClassInfo: Pointer; class function InstanceSize: Longint; class function InheritsFrom(AClass: TClass): Boolean; class function MethodAddress(const Name: ShortString): Pointer; class function MethodName(Address: Pointer): ShortString; function FieldAddress(const Name: ShortString): Pointer; function GetInterface(const IID: TGUID; out Obj): Boolean; class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry; class function GetInterfaceTable: PInterfaceTable; function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; virtual; procedure AfterConstruction; virtual; procedure BeforeDestruction; virtual; procedure Dispatch(var Message); virtual; procedure DefaultHandler(var Message); virtual; class function NewInstance: TObject; virtual; procedure FreeInstance; virtual; destructor Destroy; virtual; end; |
Mal kurz ne Frage zwischendurch wenns erlaubt ist: Warum muß die Liste ausschließlich eine Klasse aufnehmen können?
Wenn Sie die benötigte aufnimmt ist doch ok! Um verwechslungen zu Vermeiden kann mann ja einfach den Namen benutzen. So etwa:
Delphi-Quellcode:
Gruß oki
TPlayerList = class(TList)
|
Eine TList nimmt keine Klassen auf sondern nur Instanzen von Klassen :mrgreen:
Dein Beispiel ist vollkommen IO, man sollte Dinge so nennen, wonach man sie auch suchen würde ... |
Das das mit der Instanz kommt war mal wieder klar. Nun macht manns mal kurz und schon kat man die Quittung. :chat:
Gruß oki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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-2025 by Thomas Breitkreuz