![]() |
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:
das mit is ist natürlich nur ein Pseudo-Code. Aber genau diese Funktion suche ich.
if Acomponent is TButton then TButton(Acomponent).Caption:='abc';
if Acomponent is TLabel then TLabel(Acomponent).Tag:=1; grüße, quirks |
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.
|
Re: komponentenklasse feststellen
Oh. Stimmt, habs grad probiert. Hatte ich wohl doch schon mal gemacht und irgendwo im Hinterkopf gespeichert. Super. Danke :thumb:
|
Re: komponentenklasse feststellen
Delphi-Quellcode:
kann man auch verwenden
if Acomponent.ClassName = 'TButton' then TButton(Acomponent).Caption := 'abc';
if Acomponent.ClassName = 'TLabel' then TLabel(Acomponent).Tag := 1; |
Re: komponentenklasse feststellen
ah. genau sowas wie das hab ich gesucht. ich habs jetzt erledigt. läuft tatsächlich :-D
|
Re: komponentenklasse feststellen
bzw.
Delphi-Quellcode:
if Acomponent.ClassNameIs('TButton') then TButton(Acomponent).Caption := 'abc';
if Acomponent.ClassNameIs('TLabel') then TLabel(Acomponent).Tag := 1; |
Re: komponentenklasse feststellen
Schreib aber trotzdem lieber:
Delphi-Quellcode:
Ist vernünftiger Typcast und bringt imho auch kein Warning im .net. Die Harten Typcasts TFoo(Bar) sollte man nach Möglichkeit vermeiden
(AComponent As TButton).Caption:='foo';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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