Hola de nuevo.
No sé si capté claramente la idea... Pero te pongo un ejemplo que realiza lo que entendí que consultas debajo:
Cita:
Empezado por choclito1
..
Cual seria el codigo para que al hacer clic en cualquier opcion del menu me muestre el form de esa opcion y si ya se tiene otro form en el panel se destruya o se elimine y solo me muestre un solo form
...
|
Código Delphi
[-]
...
implementation
uses Unit2, Unit3, Unit4, Unit5;
var
vForms: array of TForm;
ixForm: Integer = -1;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to ToolBar1.ButtonCount-1 do
ToolBar1.Buttons[i].Tag := i;
SetLength(vForms, ToolBar1.ButtonCount);
vForms[0] := Form2;
vForms[1] := Form3;
vForms[2] := Form4;
vForms[3] := Form5;
end;
procedure TForm1.ToolButtonsClick(Sender: TObject);
var
F: TForm;
begin
if ixForm > -1 then
vForms[ixForm].Free;
ixForm := TToolButton(Sender).Tag;
F := vForms[ixForm];
case ixForm of
0: F := TForm2.Create(Self);
1: F := TForm3.Create(Self);
2: F := TForm4.Create(Self);
3: F := TForm5.Create(Self);
end;
F.ManualDock(Panel1, nil, alNone);
F.Width := Panel1.Width - 30;
F.Height := Panel1.Height - 30;
F.Left := (Panel1.Width - F.Width) div 2;
F.Top := (Panel1.Height - F.Height) div 2;
F.Parent := Panel1;
F.Show;
end;
Con este resultado:
Saludos