1.1k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
In meinem Projekt habe ich eine Variable (string), die sich "komponente" nennt, welcher ich den Wert "Label1" zugeordnet habe.
Nun versuche ich schon seit geraumer Zeit, diesen Variablenwert als Komponente zu benutzen, wobei ich es nach folgender Art und Weise versucht habe.

(komponente).Caption := 'Hallo';

Das soll heißen: Je nachdem, was bei "komponente" steht, muss diese entsprechende Komponente mit dem Caption "Hallo" belegt werden. In diesem Falle wäre es "Label1", sodass dann bei "Label1" als Text "Hallo" erscheinen muss.

1 Antwort

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Selbstverständlich kann ein String keine Eigenschaft haben - das können nur Objekte. Sehr viel korrekter wär es, erst gar keinen String zu verwenden, sondern ein TObject, oder besser TLabel - dem kannst du dann auch entsprechendes zuweisen und dessen Eigenschaft .Caption immer direkt ansprechen.

Aber vermutlich willst du eher was einfaches als eine technisch präzise Herangehensweise:
var
oComp: TComponent;
begin
oComp:= FindComponent( 'Label1' );
if oComp<> nil then (oComp as TLabel).Caption:= 'Neue Beschriftung';
...