Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Suche bestimmte Menü-Komponente (ähnlich TPageControl)

  Alt 17. Jun 2008, 15:41
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;
Andreas
  Mit Zitat antworten Zitat