Einzelnen Beitrag anzeigen

Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Buttons ansprechen in einer Schleife

  Alt 8. Okt 2003, 12:54
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
  Mit Zitat antworten Zitat