![]() |
Wie FindComponent bei Eigener Klasse
Hallo
ich habe hier eine Klasse gemacht :
Delphi-Quellcode:
Jetzt habe ich davon einige erzeugt. So z.B.TKeySet = class x, y, z : Integer; Capt : String; constructor Create (xx, yy, zz : Integer; Captt : String); end;
Delphi-Quellcode:
Jetzt möchte ich die so irgendwie suchen, ich weis eben nicht wie ?:Power := TKeySet.Create(0, 0, 0, 'x');
Delphi-Quellcode:
Vielleicht habe ich da auch was ganz falsch verstanden, ich mache das mit den Klassen zum ersten mal.TKeySet(FindComponent(Keyy)).x:=1; MfG |
Re: Wie FindComponent bei Eigener Klasse
Erweitere die Klasse um eine Collection oder einen dynamischen Array als Klassenattribut und speichere die Namen der Objekte und Referenzen auf sie in Konstruktor darin ab. Im Destruktor entfernst du dann die Einträge. In der Find-Methode brauchst du dann nur nach der Bezeichnung suchen und die Referenz zurückgeben.
|
Re: Wie FindComponent bei Eigener Klasse
FindComponent findet Komponenten. Du musst deine Klasse also von TComponent ableiten:
Delphi-Quellcode:
Dann wird sie mit FindComponent gefunden. [Edit]Ob das bei deinem Vorhaben sinnvoll ist, ist eine andere Frage.
class(TComponent)
|
Re: Wie FindComponent bei Eigener Klasse
TComponent hat dazu eine Infrastruktur. Jede TComponent hat einen Owner der dafuer zustaendig ist die abhaengigen Komponenten zu zerstoeren wenn die Komponente zerstoert wird. Dazu hat jede TComponent eine TObjectList property namens Components. Zusaetzlich gibt es noch mit der virtuellen Methode Notification ein Benachrichtigungssystem, damit man eine Komponente auf vorzeitig zerstoern kann und die Verwaltung der Liste gehandhabt werden kann.
Alles in allem macht das hier keinen Sinn. Du willst sicher die erstellten Klassen in einem Array oder einer Liste von Variablen aufheben. Eine TObjectList waere dafuer geeignet. Dann kann man sich eine Funktion oder Methode schreiben, die anhand der Caption ein Element der Liste sucht. |
Re: Wie FindComponent bei Eigener Klasse
Hallo,
ich würde es so ausdrücken: Mit FindComponent suchst du nach Objekten, deren Klasse von TComponent abgeleitet wurde, aber nur wenn du keinen besseren Weg weißt. Normalerweise führst du eine eigene Objektverwaltung ein, wenn die von der VCL angebotenen Verwaltungen (basierend auf Owner oder Parent) dir nicht genügen. Freundliche Grüße |
Re: Wie FindComponent bei Eigener Klasse
Also ist eine ObjectList das beste ?
Habe ich auch schon das gefunden ![]() aber ich habe da ein Problem : [DCC Fehler] Main.pas(324): E2003 Undefinierter Bezeichner: 'TObjectList' Muss man was bei uses hinzufügen oder ? MfG |
Re: Wie FindComponent bei Eigener Klasse
Zitat:
|
Re: Wie FindComponent bei Eigener Klasse
ja Contnrs
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 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