Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Suche alle Komponeten mit bestimmter property (https://www.delphipraxis.net/19260-suche-alle-komponeten-mit-bestimmter-property.html)

Sidores 31. Mär 2004 10:41


Suche alle Komponeten mit bestimmter property
 
Hi,
wie der Titel es schon sagt möchte ich alle Komponeten mit einer bestimmten property, während der Laufzeit ermitteln.
Gibt es für soetwas vielleicht schon eine Funktion, wo ich nur noch sagen muss welche property die Komponente haben soll, und er mir die Namen der Komponenten zurückgibt, die diese besitzen???
Wie ist soetwas möglich?

Danke

Sidores 31. Mär 2004 12:37

Re: Suche alle Komponeten mit bestimmter property
 
Hab was dazu gefunden:
http://www.delphipraxis.net/internal...erty+in+objekt

DelphiDeveloper 31. Mär 2004 13:35

Re: Suche alle Komponeten mit bestimmter property
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die PPropList ist der Schluessel fuer dein Problem.
Alle Properties die von TPersistent kommen kann man damit einfangen.

Was jetzt noch fehlt ist dass du ueber deine Form läufts und von allen
Components die PropList ansiehst

Im Anhang findest du ein beispiel.

Das Programm lädt in eine ComboBox alle Properties von Form und deren
Komponenten.
Dann wählst du ein Property aus und es wird in der Listbox angezeigt
welche Komponente das selektierte property besitzt.

DelphiDeveloper 31. Mär 2004 14:34

Re: Suche alle Komponeten mit bestimmter property
 
wenn du dich noch fuer die values der Properties interessiert,
dann schau dir PPropInfo an.

geht etwa so:

im var teil zusaetzlich
PropInfo: PPropInfo;

und dann
Delphi-Quellcode:
PropInfo := PropList^[j];
        ListBox1.AddItem(components[i].Name + ':' + PropList^[j].Name + ' -' +
        PropList^[j].PropType^.Name + ' value: '+
        VarToStr(GetPropValue(components[i],PropInfo^.Name)), nil);


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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