Delphi-Quellcode:
Application.Components[i].Caption := 'was auch immer';
kann ja auch gar nicht funktionieren, da Caption keine Eigenschaft von TCompnent ist.
Dafür musst Du vorher den Typ casten.
Geht in etwa so:
Delphi-Quellcode:
if Application.Components[i] is TButton then
(Application.Components[i] as TButton).Caption := 'was auch immer';
Zitat:
auch wenn man objekte zur laufzeit anlegen möchte, müssen diese ja deklariert werden.
aber wenn ich jetzt nicht wieß wieviel es werden, was soll ich da dann machen? etwa auf verdacht mal so 100 buttons deklarieren!?!?
Du brauchst doch nur eine Instanz eines TButtons. Nachdem die created wurde, kannst Du die gleiche Instanz für
den nächsten Button nehmen.
Bsp:
Delphi-Quellcode:
var
aButton: TButton
begin
aButton := TButton.create(self);
with aButton do begin
caption := '1. Button';
top := 20;
end;
aButton := TButton.create(self);
with aButton do begin
caption := '2. Button';
top := 50;
end;
end;
oder sogar ganz auf die Instanz verzichten:
Delphi-Quellcode:
begin
with TButton.create(self) do begin
caption := '1. Button';
top := 20;
end;
with TButton.create(self) do begin
caption := '2. Button';
top := 50;
end;
end;
wobei diese Proceduren Methoden des Formulars sein sollten, damit self (als Owner) einen Sinn macht