Das ganze hat folgenden Hintergrund. Ich habe auf meinem MainForm einen VirtualStringTree als
Navigationskomponente für die einzelnen Formulare die halt in ein Panel(Containerpanel) geladen werden.
Delphi-Quellcode:
procedure TfmMain.VSTClick(Sender: TObject);
var
NewFormClass: TFormClass;
NewForm: TForm;
NodeData: PTreeData;
Node: PVirtualNode;
begin
Node := VST.FocusedNode;
if not Assigned(Node) then
Exit;
NodeData := VST.GetNodeData(Node);
case NodeData.FormIndex of
0:
NewFormClass := TfmForm1;
1:
NewFormClass := TfmForm2;
2:
NewFormClass := TfmForm3;
3:
NewFormClass := TfmForm4;
...
else
NewFormClass := nil;
end;
begin
if ContainerPanel.ControlCount > 0 then
ContainerPanel.Controls[0].Free;
if Assigned(NewFormClass) then
begin
NewForm := NewFormClass.Create(Self);
NewForm.Hide;
NewForm.BorderStyle := bsNone;
NewForm.Parent := ContainerPanel;
NewForm.Align := alClient;
NewForm.Show;
end;
end;
end;
Wenn ich nun in einem Formular das im Containerpanel geladen wird ein weiteres Formular bzw Dialog aufrufe (mit FormX.Show)
dann kann ich nicht auf die Komponenten/Proceduren etc. auf dem Formular zugreifen.