AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie FindComponent bei Eigener Klasse

Ein Thema von ebber · begonnen am 6. Aug 2007 · letzter Beitrag vom 6. Aug 2007
Antwort Antwort
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#1

Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 18:50
Hallo

ich habe hier eine Klasse gemacht :

Delphi-Quellcode:

TKeySet = class
      x, y, z : Integer;
      Capt : String;
      constructor Create (xx, yy, zz : Integer; Captt : String);
  end;
Jetzt habe ich davon einige erzeugt. So z.B.

Delphi-Quellcode:

Power := TKeySet.Create(0, 0, 0, 'x');
Jetzt möchte ich die so irgendwie suchen, ich weis eben nicht wie ?:

Delphi-Quellcode:

TKeySet(FindComponent(Keyy)).x:=1;
Vielleicht habe ich da auch was ganz falsch verstanden, ich mache das mit den Klassen zum ersten mal.

MfG
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 18:55
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.
Markus Kinzler
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:04
FindComponent findet Komponenten. Du musst deine Klasse also von TComponent ableiten:
class(TComponent) Dann wird sie mit FindComponent gefunden. [Edit]Ob das bei deinem Vorhaben sinnvoll ist, ist eine andere Frage.
Benjamin
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:07
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:09
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
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#6

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:49
Also ist eine ObjectList das beste ?

Habe ich auch schon das gefunden http://www.dsdt.info/tutorials/tobjectlist/?page=1

aber ich habe da ein Problem :

[DCC Fehler] Main.pas(324): E2003 Undefinierter Bezeichner: 'TObjectList'

Muss man was bei uses hinzufügen oder ?

MfG
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#7

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:54
Zitat von ebber:
Muss man was bei uses hinzufügen oder ?

MfG
Ja, "Contnrs", hättest du selber auch in wenigen Sekunden rausfinden können.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Wie FindComponent bei Eigener Klasse

  Alt 6. Aug 2007, 19:54
ja Contnrs
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 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