
Mein Programm erzeugt dynamisch Panels (Ja das muss dynamisch sein!)
Und zwar so
Code: Alles auswählen
quad: array[0..100] of TPanel;
{...}
quad[i]:=TPanel.Create(Preview);
with quad[i] do
begin
parent:=Preview;
Top:=Ybar.Position*5;
Left:=Xbar.Position*5;
Width:=wbar.Position*5;
Height:=HBar.Position*5;
Visible:=true;
Hint:='Object Number '+inttostr(i);
Showhint:=true;
end;
Jetzt will ich aber auch welche wieder löschen, dazu hab ich auf Form1 einen neuen Button eingefügt
Code: Alles auswählen
Freeandnil(quad[Objectnumber.Value])

Code: Alles auswählen
with quad[i] do
Onclick:=Freeandnil(self);
Code: Alles auswählen
Error: Incompatible types: got "untyped" expected "<procedure variable type of procedure(TObject) of object;Register>"

Hab auf die Meldung eine procedure erstellt
Code: Alles auswählen
procedure DeleteObject(Sender:TObject);
begin
Sender.Free;
end;
Code: Alles auswählen
Onclick:=DeleteObject(TPanel);
Also hab ich ihm
Code: Alles auswählen
Onclick:=DeleteObject(TObject);

Jetzt kapier ich garnix mehr, deshalb frag ich hier nach, wie ich dynamisch Funktionen zuweisen kann (oder noch besser: gleich löschen)
Danke schonmal
