Hallo!
Ich habe auf einem Form mehrere Buttons und Labels, deren Caption ich mit folgender Methode ändern:
Delphi-Quellcode:
procedure SetControlCaption(ControlName, Caption: String);
begin
control := MainForm.FindChildControl(ControlName);
if ((control<>nil) and (control is TLabel)) then
TLabel(control).Caption := Caption;
if ((control<>nil) and (control is TButton)) then
TButton(control).Caption := Caption;
end;
Ein Aufruf von SetControlCaption('MeinButton', 'Test') ändern nun problemlos die Caption des Buttons "MeinButton" auf "Test". Wenn ich das Gleiche mit einerm Label "MeinLabel" versuche, passiert aber nichts, weil FindChildControl(ControlName) nur nil zurückliefert.
Wenn ich einen Button mit dem Namen "MeinLabel" erstelle, wird dieser prima gefunden und die Caption geändert. Am Namen der Control liegt es also nicht. Warum findet FindChildControl(ControlName) also keine TLabel?
Besten Dank
Ares