ich versuche verzweifelt einen Panel zu löschen, aber es klappt einfach nicht.
erstellen tue ich ihn so:
Code: Alles auswählen
procedure TForm1.AddPanel(PCaption:String);
var
pl,pl1,pl2:TPanel;
i:Integer;
sp,sp1,sp2,sp3:TSpeedButton;
lb,lb1:TLabel;
ed:TEdit;
vst:TVirtualStringTree;
begin
inc(Index);
SetLength(PL_Liste,high(PL_Liste)+2);
pl:=TPanel.Create(ScrollBox1); pl.Parent:=ScrollBox1;
pl.Left:=0; pl.Top:=0; pl.Width:=308; pl.Height:=406;
// Das Erste Panel wird erstellt
pl1:=TPanel.Create(pl); pl1.Parent:=pl; pl1.Visible:=True;
pl1.left:=0; pl1.top:=0; pl1.Width:=306; pl1.Height:=24;
pl1.Align:=alTop;
// Komponenten zum Erste Panel hinzufügen
// Die Speed Buttons werden erstellt
sp:=TSpeedButton.Create(pl1); sp.Parent:=pl1; sp.Caption:='&X';
sp.Left:=280; sp.Top:=0; sp.Width:=23; sp.Height:=22; sp.tag:=1;
sp.OnClick:=@SPClick;
sp1:=TSpeedButton.Create(pl1); sp1.Parent:=pl1; sp1.Caption:='&M';
sp1.Left:=253; sp1.Top:=0; sp1.Width:=23; sp1.Height:=22; sp1.tag:=2;
sp1.OnClick:=@SPClick;
sp2:=TSpeedButton.Create(pl1); sp2.Parent:=pl1; sp2.Caption:='&V';
sp2.Left:=225; sp2.Top:=0; sp2.Width:=23; sp2.Height:=22; sp2.Tag:=3;
sp2.OnClick:=@SPClick;
// Label wird erstellt
lb:=TLabel.Create(pl1); lb.Parent:=pl1; lb.Caption:='Titel leiste';
lb.Left:=0; lb.Top:=0; lb.Width:=225; lb.Height:=17;
// Komponenten zum zweiten Panel hinzufügen
pl2:=TPanel.Create(pl); pl2.Parent:=pl; pl2.Visible:=True;
pl2.left:=0; pl2.top:=25; pl2.Width:=306; pl2.Height:=60;
pl2.Align:=alTop;
lb1:=TLabel.Create(pl2); lb1.Parent:=pl2; lb1.Caption:='Verzeichnis';
lb1.Left:=6; lb1.Top:=4; lb1.Width:=83; lb1.Height:=17;
ed:=TEdit.Create(pl2); ed.Parent:=pl2;
ed.Left:=6; ed.Top:=23; ed.Width:=271; ed.Height:=25;
sp3:=TSpeedButton.Create(pl2); sp3.Parent:=pl2; sp3.Caption:='...';
sp3.Left:=277; sp3.Top:=23; sp3.Width:=23; sp3.Height:=22; sp3.tag:=4;
sp3.OnClick:=@SPClick;
// VST zum hintergrund Panel hinzufügen
vst:=TVirtualStringTree.Create(pl); vst.Parent:=pl;
vst.left:=6; vst.top:=90; vst.Width:=290; vst.Height:=300;
vst.ScrollBarOptions.AlwaysVisible:=True;
// pl_liste[high(PL_Liste)]:=pl;
end;
Code: Alles auswählen
// Verarbeitet alle SP onclick Ereignisse
procedure TForm1.SPClick(Sender:TObject);
var
str:String;
t,i:Integer;
pl1:TPanel;
begin
t:=(Sender as TSpeedButton).Tag;
case t of
1: begin
pl1:=pl_liste[0];
for i:=pl1.ControlCount-1 downto 0 do
pl1.RemoveControl(Controls[i]);
pl1:=NIL;
TPanel(ScrollBox1.Controls[0]).Destroy;
end; // X Button
2: begin
end; // M Button
3: begin
end; // V Button
4: begin
end; // ... Button
end;
end;
Ich weiß einfach nicht mehr weiter.
Mein ziel ist es den Panel über ein Button der auf dem Panel zu löschen.
evlt. ist genau da das Problem.