Thema: Delphi Button zerstören?

Einzelnen Beitrag anzeigen

daywalker-dj-k

Registriert seit: 27. Nov 2003
85 Beiträge
 
#4

Re: Button zerstören?

  Alt 20. Mär 2004, 12:03
hallo,
hab da mal ne frage zum "button-prog". wie müsste ich das ganze lösen, wenn ich einfach in einer schleife einige objekte löschen möchte?

PostMessage(Handle,PM_FREEBUTTON,TComponent(Sender).Tag,0); da müsste ich doch jetzt quasi nur "TComponent(Sender)" durch meine komponente (über FindComponent) ersetzen.

nur was muss ich nun hier machen:

FreeAndNil(FButtonArray[Message.wParam]); 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?


danke schonmal
gruß
tkliewe



hier mal kurz der ganze quelltext:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iCnt : Integer;
begin
  SetLength(FButtonArray,MAX_BUTTONS);
  For iCnt:=0 to MAX_BUTTONS-1 do
    begin
    FButtonArray[iCnt]:=TButton.Create(Self);
    FButtonArray[iCnt].Parent:=Self;
    FButtonArray[iCnt].Caption:='Button '+IntToStr(iCnt+1);
    FButtonArray[iCnt].SetBounds(100,12+iCnt*(FButtonArray[iCnt].Height+4),FButtonArray[iCnt].Width,FButtonArray[iCnt].Height);
    FButtonArray[iCnt].Tag:=iCnt;
    FButtonArray[iCnt].OnClick:=ButtonClick;
    end;
  Button1.Enabled:=False;
end;

procedure TForm1.ButtonClick(Sender: TObject);
begin
  {PostMessage wird hier verwendet, weil PostMessage ans Ende der Botschafts-
  warteschlange gestellt wird und deshalb erst abgearbeitet wird wenn alle
  anderen Botschaft, wie z.B. die Click Botschaft an den Button abgearbeitet
   wurde}

  PostMessage(Handle,PM_FREEBUTTON,TComponent(Sender).Tag,0);
end;

procedure TForm1.PMFREEBUTTON(var Message: TMessage);
begin
  FreeAndNil(FButtonArray[Message.wParam]);
end;
  Mit Zitat antworten Zitat