Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Seiten für Einstellungen einblenden (https://www.delphipraxis.net/121928-seiten-fuer-einstellungen-einblenden.html)

oki 7. Okt 2008 07:30


Seiten für Einstellungen einblenden
 
Moin,

nach langem ergebnislosen suchen geb ichs auf und Frage. Ich möchte einen Einstellungsdialog einblenden, auf dem ich in der linken Seite einen Tree mit den Kategorien anzeige und auf der rechten Seite nach Anwahl einer Kategorie die entsprechende Seite zu sehen ist. Eigentlich so, wie es heute üblich ist (Siehe Optionen in den Projekteinstellungen der IDE). Ich möchte keine Reiter ala TPageControl haben! Wie wird das elegant gelöst. Frames oder einzelne Panels übereinander zu legen erscheint mir etwas unelegant. Normal sollte ein Pagekontrol reichen. Die Steuerung könnte man elegant über TabVisible der Tabs regeln. Wenn da nicht der Reiterbutton stören würde.

Toll, wenn mir jemand einen Tip geben könnte, so kann ich mit dem Suchen aufhören und endlich wieder proggen.

Gruß oki

Ralf Kaiser 7. Okt 2008 07:40

Re: Seiten für Einstellungen einblenden
 
Zitat:

Zitat von oki
Ich möchte keine Reiter ala TPageControl haben!

Hallo,

dann nimm einfach ein PageControl und setze "TabVisible" der einzelnen Seiten auf "false". Fertig. Wenn auf eine der Nodes im TreeView geklickt wird zeigts du die dazu gehörende Seite des Pagecontrols (ActivePageIndex := x) an.

[EDIT:] gerade erst gesehen: was meinst du mit "Wenn da nicht der Reiterbutton stören würde"??

Ciao,
Ralf

Reinhardtinho 7. Okt 2008 07:41

Re: Seiten für Einstellungen einblenden
 
TJvPageList

oki 7. Okt 2008 07:47

Re: Seiten für Einstellungen einblenden
 
Hi,

@Alfi001:
mann bin ich blöd! :wall: Ich habe gleichen Tipp auch schon bei der Suche gefunden, beim Testen aber den Fehler gemacht, dass ich neben dem Pageindex zusätzlich die Eigenschaft TabVisible auf True gesetzt habe. Mein Fehler war die Annahme, dass TabVisible grundsätzlich den gesamten Tab ausblendet und nicht den "Reiterkopf". Blöd formuliert, aber egal. Auf jeden Fall ist das Thema damit beantwortet.

@Reinhardtinho:
Ja, aber ich möchte in dem Projekt möglichst Standard-Delphi-Kompos verwenden.

Dank für den Gedankenanstoß und Gruß

oki

mquadrat 7. Okt 2008 07:57

Re: Seiten für Einstellungen einblenden
 
Diesen Weg haben wir auch gewählt. Es hat sich allerdings gezeigt, dass das suboptimal ist, wenn die Einstellungen mehr und mehr werden. Inzwischen liegen da hunderte Controls drauf, was die Sache in der IDE nicht gerade schnell sein lässt.

Insofern stellen wir um auf dynamisch geladene Frames. Zur Design-Time ist auf dem Einstellungsform eigentlich nur der TreeView und ein Panel. Wird auf einen der Nodes geklickt wird ein ggf. angezeigter Frame freigegeben und der korrekte Frame geladen.

oki 7. Okt 2008 08:05

Re: Seiten für Einstellungen einblenden
 
Hi mquadrat,

ja, das Thema Frames fand ich auch recht sympatisch. Bei mir wird es sich aber um maximal 10 Kategorien handeln. Somit reicht der einfache Werg aus. Zusätzlich benötige ich die entsprechenden Seiten nur einmal. Bei Frames hatte mich gestört, dass das Handlich in Bezug auf die Positionierung für meinen Geschmack etwas wirr war. Zumindest hatte ich da in der Vergangenheit einige Probleme. Das kann aber auch an mir liegen.

Gruß oki

mquadrat 7. Okt 2008 08:10

Re: Seiten für Einstellungen einblenden
 
Falls dein Frame auf dem Formular eine andere Größe hat als du im Designer beim Frame eingestellt hast, könnte sich da was verschieben. Einfach den Frame so aufbauen, dass es immer passt egal welche Größe. Also genau so, als würdest du ein "komplettes" Formular machen, bei dem der Nutzer das Fenster größer / kleinr machen kann. Dann sollte das eigentlich passen.

Bei den Mengen ist das mit PageControl noch übersichtlich. Wir sind inzwischen bei ~30 Tabs und auf manchen Tabs nochmal PageControls. Da wird's schon eng ;)

oki 7. Okt 2008 08:21

Re: Seiten für Einstellungen einblenden
 
Jo, geb dir recht. Mein Problem war, dass ich einen kleinen Rahmen um das Frame brauchte und dann noch eine Größenänderung mittels Splitter notwendig war. Natürlich hab ich an der Stelle den Aufbau des Frames wie für ein normales größenänderbares Fenster gestaltet. Leider hatte ich zur Laufzeit einige "komische" Effekte. Sorry, wenn ich das jetzt nicht mehr so genau zusammen bekomme. Wie gesagt, ich glaube auch, dass ich mit Schuld bin. Hatte da auch diverse Einstellungen mit Margins usw.
Ich hab es auch nicht hinbekommen das Frame in einen abgegrenzten Clientbereich automatisiert zu halten. So nach dem Motto links ein Panel alLeft, oben ein Panel alTop und rechts in der unteren freien Ecke ein Frame alClient. Ich hatte immer die Erscheinung, dass die automatische Ausrichtung nicht richtig funktioniert hatte und dann mächtig "rumgezaubert" bis alles halbwegs ging. Aber wie schon mehrfach erwähnt will ich die Frames nicht schlecht machen. Ich arbeite sehr selten mit Frames und das Durcheinander kann auch an meiner "speziellen" Art dies umzusetzen gelegen haben.

Für mein aktuelles Thema ist das PageControl aber ausreichend.

Gruß oki

<edit> Rechtschreibung notdürftig verbessert </edit>

Sharky 7. Okt 2008 09:21

Re: Seiten für Einstellungen einblenden
 
Hai oki,

auch wenn Du es jetzt mit einem PageControl machst. Du kannst Dir ja mal das hier anschauen.

oki 7. Okt 2008 10:27

Re: Seiten für Einstellungen einblenden
 
Hai Sharky,

danke für das Beispiel. Ich denke, für meinen aktuellen Fall tuts das PageControl.

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz