Zitat von
daywalker-dj-k:
wie müsste ich das ganze lösen, wenn ich einfach in einer schleife einige objekte löschen möchte?
Wenn ButtonX nicht Bestandteil von FButtonArray ist brauchst Du das ganze Zeug mit PostMessage nicht. Dann reicht der folgende
Delphi-Quellcode:
Codeprocedure TForm1.ButtonXClick(Sender : TObject);
var
iCnt : Integer;
begin
For iCnt:=Low(FButtonArray) to High(FButtonArray) do
FreeAndNil(FButtonArray[iCnt]);
end;
Zitat von
daywalker-dj-k:
ich habe ja kein array mit den objektnamen und möchte auch keins erstellen. was bedeutet denn das "message.wparam" überhaupt. Muss ich bei FreeAndNil nicht einfach nur den Objektnamen wie "Edit1" einsetzen?
Wenn die Buttons in keinem Array sind, dann musst Du die Buttons geschickt benamen. Dann kannst FindComponentwie folgt nutzen:
Delphi-Quellcode:
procedure TForm1.ButtonXClick(Sender : TObject);
var
iCnt : Integer;
begin
For iCnt:=0 to 9 do // wir haben 10 Buttons
FindComponent('Button'+IntToStr(iCnt)).Free;
end;
Objektnamen sind wie andere Namen auch nur Schall und Rauch. Wichtig ist, dass Du eine gültige Referenz auf das Objekt hast. Über den Namen des Objektes sorgt der Compiler dafür das dem so ist. Ob die Referenz in einer Instanzenvariablen oder in Array oder sonst wo gespeichert ist ist dabei egal.