Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - String To TComponentName To TLabel


noctua - Sa 30.09.06 15:31
Titel: String To TComponentName To TLabel
Hallo

Ich habe da ein kleines Problem, Auf meiner Form liegen einige TLabels in einem 2er Paar. das Linke TLabel des Paars heißt immer "Label1" oder "Label2" (Label mit einer zahl). Das rechte TLabel heißt immer "WLabel1" oder "WLabel2" (immer noch ein W vor den Namen).

Nun möchte ich, dass wenn man z.B. auf "Label1" klickt der Inhalt (caption) von "WLabel1" verändert wird.
Dazu hatte ich diese Idee:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure SkillEintragen(Sender: TLabel);
  var WertName: TComponentName;
begin
 Form1.Memo2.Lines.Add( Copy(Sender.Name, 0, Length(Sender.Name)) );

 WertName := Copy(Sender.Name, 0, Length(Sender.Name));
 WertName := 'W' + Copy(SkillName.Name, 0, Length(SkillName.Name));
 WertName.Caption := 'asd';
end;

procedure TForm1.GesundheitClick(Sender: TObject);
begin
  SkillEintragen( TLabel(Sender) );
end;


Doch um das zu realisieren muss ich es schaffen das 'W' in eine "TComponentName" umzuwandeln und das ganze dann in ein "TLabel" um dann die Caption zu ändern.

vielleicht gibt es ja sowas, doch ich habe nichts gefunden. Oder kibt es da eine andere Möglichkeit?

danke


jakobwenzel - Sa 30.09.06 15:36

Das geht mit Suche in der Entwickler-Ecke FINDCOMPONENT


noctua - Sa 30.09.06 16:03

mach ich etwas falsch? er sagt immer "undefinierter Bezeichner: 'FindComponent'"


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure SkillEintragen(Sender: TLabel);
  var X : TLabel;
begin

 X := TLabel(FindComponent('bla'));

end;


alzaimar - Sa 30.09.06 17:53

FindComponent ist eine Methode eines Controls, also einer Form z.B.


noctua - Sa 30.09.06 18:06

hok, doof von mir.

Danke, du hast mir echt sehr geholfen =D danke