Hallöle...
Zitat:
Eine meiner PageControl-Anwendungen mit etlichen TabSheets braucht noch weitere.
Versuch das zu verstehen was du möchtest. Ich gehe davon aus, wegen der Menge der Reiter, ist es unübersichtlich sowohl im Code als auch in der Oberfläche...
Meine Lösung als Idee:
1. Bild
2. Code zum Aufruf des Frames oder Form
Delphi-Quellcode:
procedure TfoPreferences.tvContentChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
Data: PSEAMTreeDataObject;
begin
Data := Sender.GetNodeData(Node);
if Assigned(Data) then
begin
case Data^.AbsolutIndex of
10000, 10100, 10400, 11000, 11210, 11300, 11500, 11600:
begin
pgcContent.ActivePage:= tsClear;
end;
10350:
begin
pgcContent.ActivePage:= tsMisc;
end;
10700:
begin
pgcContent.ActivePage:= tsContent;
actSecurityManager.Execute;
end;
10710:
begin
pgcContent.ActivePage:= tsContent;
actDatabaseLock.Execute;
end;
...
end;
...
procedure TfoPreferences.actDatabaseLockExecute(Sender: TObject);
var
Form: TForm;
begin
FPreferences.PreferencesCommon.FormDictionary.TryGetValue('frDatabaseLock', Form);
if not Assigned(Form) then
begin
Form := TfrDatabaseLock.Create(Application, FPreferences);
FPreferences.PreferencesCommon.FormDictionary.Add('frDatabaseLock', Form);
end;
SetContentForm(Form, pnlContent, Sender, Format(conTextContentSecurity, [TAction(Sender).Caption]));
Form.Show;
end;