Man kann das mit Delphi Bordmitteln so einigermassen nachbilden.
Die linke Seite:
Hier nimmt man ein
TTreeview und setzt ShowRoot=False.
Man setzt Align auf alLeft oder wenn es auf die Optik ankommt setzt man das Treeview auf ein Panel, damit es nicht die gesamte linke Fläche ausfüllen muss.
Die rechte Seite
Man nimmt ein
TPageControl und erzeugt für jedes Item im TreeView eine eigene Seite.
Zur
Laufzeit schaltet man dann alle Reiter unsichtbar:
Delphi-Quellcode:
for i := PageControl1.PageCount - 1 downto 0 do
begin
PageControl1.Pages[i].TabVisible := False;
PageControl1.Pages[i].Visible := True;
end;
Man macht dies nicht schon zur Entwicklungszeit, da man sonst leichte Schwierigkeiten hat, die Seiten umzuschalten.
PageControl.Align wird auf alClient gesetzt.
Jetzt muss man nur noch das PageControl mit dem Treeview synchron laufen lassen.
Delphi-Quellcode:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
PageControl1.ActivePageIndex := Node.Index;
// Bei allen Seiten ausser der aktiven Seite Enabled auf False setzen, damit
// man mit der Tabulator-Taste nicht durch unsichtbar Controls durchsteppt.
for i := PageControl1.PageCount - 1 downto 0 do
begin
PageControl1.Pages[i].Enabled := PageControl1.Pages[i] = PageControl1.ActivePage;
end;
end;