Also, zum einen musst du nicht immer ein separates Edit/Label erstellen, dafür gibt es ja auch die labelededit.
Zum anderen ist das Beispiel von hhcm eine Möglichkeit die "Masse" abzuarbeiten.
Ich nutze dies z.B. um durchnummerierte (zusammenhängende) Komponenten z.B. beim Programmstart abzuarbeiten:
Delphi-Quellcode:
for i := 1 to 16 do //Da ich 16 entsprechende Komponenten habe.
begin
//vorher gespeicherte Toolbar-Einstellungen laden
TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'E')).text := Ini.ReadString('Install', 'Tool' + inttostr(i), ''); //EditFeld (Programmpfad)
TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'P')).text := Ini.ReadString('Install', 'Tool' + inttostr(i) + 'P', ''); //Editfeld (Parameter)
TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'N')).text := Ini.ReadString('Install', 'Tool' + inttostr(i) + 'N', ''); //Editfeld (Name; Optional)
//vorher gespeicherte Toolbar-Einstellungen setzen und entsprechende Komponenten mitgeben.
Toolbarset(TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'E')),
TImage (FindComponent('Tool' + inttostr(i) + 'I')),
TCheckBox (FindComponent('Tool' + inttostr(i) + 'C')),
TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'N')),
TButton (FindComponent('Tool' + inttostr(i) + 'B')));
end;
Auch bei den Buttons z.B. um auf die entsprechenden Werte zuzugreifen:
Delphi-Quellcode:
//Toolbarbuttons Click
procedure TTools.ToolClick(Sender: TObject);
var
Pfad : widestring;
Parameter : widestring;
Laenge : Integer;
begin
with sender
as TButton
do
begin
Laenge := length(
Name) - 5;
Pfad := widestring(TEdit(Tools.FindComponent('
Tool' + copy(
Name, 5, Laenge) + '
E')).Text);
Parameter := widestring(TEdit(Tools.FindComponent('
Tool' + copy(
Name, 5, Laenge) + '
P')).Text);
if Name <> '
Tool1B'
then //Tool1B ist "reserviert"
begin
try
StrToInt(copy(
Name, 6, 1));
ShellexecuteW(
Handle, '
open', PWideChar(Pfad), PWideChar(Parameter),
nil, SW_SHOW);
except
ShellexecuteW(
Handle, '
open', PWideChar(Pfad), PWideChar(Parameter),
nil, SW_SHOW);
end;
end else
begin
UpdateC := True;
Close;
end;
end;
end;
Evtl. Hilft dir das etwas.