![]() |
Objekt-Referenzen (Zeiger) in Variant-Array
Hallo zusammen!
Als neues Mitglied im Forum möchte ich zunächst mal 'Hallo' sagen, euch aber gleich mit einer Frage belästigen. In einem Delphi-Variant kann ich ja nun eine ganze Reihe von Standardtypen speichern. Wenn ich nun aber Zeiger auf Objekte (e.g. eine ProgressBar, oder irgendwas anderes was von TObject abgeleitet wurde) übergeben möchte? Ist das möglich? Für Antworten wäre ich sehr dankbar :-D |
Re: Objekt-Referenzen (Zeiger) in Variant-Array
Ja, das ist theoretisch möglich indem man vorher den Typ in einen Integer wandelt:
Delphi-Quellcode:
Später muss man dann den Typ wieder auf die richtige Klasse casten:
variant_variable[0] := Integer(Panel5);
Delphi-Quellcode:
Allerdings gibt es in Delphi bessere Möglichkeiten.
(TObject(variant_variable[0]) as TPanel).visible := True;
man kann z.B. dynamische Arrays benützen:
Delphi-Quellcode:
Je genauer man die Klassenfamilie eingrenzt, umso besser.
type
TObjArray = array of TObject; TComponentArray = array of TComponent; TControlArray = array of TControl; Noch besser ist es, Objekte in einer TObjectList abzulegen. Listen sind leichter zu verwalten als dynamische Arrays. Wenn du mit den Objekten über Prozessgrenzen hinweg gehen möchtest, dann muss man mit Interfaces (IUnknown bzw. IDispatch) arbeiten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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