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 komponentenklasse feststellen (https://www.delphipraxis.net/51326-komponentenklasse-feststellen.html)

quirks 10. Aug 2005 17:48


komponentenklasse feststellen
 
Sorry, falls das schon behandelt wurde, aber ich kann beim besten Willen hier nichts dazu finden.
Ich möchte, je nachdem, was für einer Klasse eine bestimmte Komponente angehört, bestimmte Eigenschaften bearbeiten.

Zur Verdeutlichung:
Code:
if Acomponent is TButton then TButton(Acomponent).Caption:='abc';
if Acomponent is TLabel then TLabel(Acomponent).Tag:=1;
das mit is ist natürlich nur ein Pseudo-Code. Aber genau diese Funktion suche ich.


grüße, quirks

Oxmyx 10. Aug 2005 17:50

Re: komponentenklasse feststellen
 
Wenn ich richtig verstanden habe was du willst, dann dürfte dein Code exakt so wie du ihn geschrieben hast bereits funktionieren. "is" ist in Delphi der Vergleichsoperator für Objekte.

quirks 10. Aug 2005 17:53

Re: komponentenklasse feststellen
 
Oh. Stimmt, habs grad probiert. Hatte ich wohl doch schon mal gemacht und irgendwo im Hinterkopf gespeichert. Super. Danke :thumb:

semo 11. Aug 2005 07:44

Re: komponentenklasse feststellen
 
Delphi-Quellcode:
if Acomponent.ClassName = 'TButton' then TButton(Acomponent).Caption := 'abc';
if Acomponent.ClassName = 'TLabel' then TLabel(Acomponent).Tag     := 1;
kann man auch verwenden

quirks 11. Aug 2005 09:10

Re: komponentenklasse feststellen
 
ah. genau sowas wie das hab ich gesucht. ich habs jetzt erledigt. läuft tatsächlich :-D

semo 12. Aug 2005 07:57

Re: komponentenklasse feststellen
 
bzw.
Delphi-Quellcode:
if Acomponent.ClassNameIs('TButton') then TButton(Acomponent).Caption := 'abc';
if Acomponent.ClassNameIs('TLabel') then TLabel(Acomponent).Tag     := 1;

Sidorion 12. Aug 2005 09:33

Re: komponentenklasse feststellen
 
Schreib aber trotzdem lieber:
Delphi-Quellcode:
(AComponent As TButton).Caption:='foo';
Ist vernünftiger Typcast und bringt imho auch kein Warning im .net. Die Harten Typcasts TFoo(Bar) sollte man nach Möglichkeit vermeiden


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