Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi PageControl mit Tabsheets zur Laufzeit erzeugen (https://www.delphipraxis.net/116534-pagecontrol-mit-tabsheets-zur-laufzeit-erzeugen.html)

S20000 1. Jul 2008 12:47


PageControl mit Tabsheets zur Laufzeit erzeugen
 
Hallo zusammen,

ich habe folgendes Problem. Mein Formular besteht aus einem Pagecontrol
dessen Anzahl von Tabsheets erst zur Laufzeit bestimmt wird.
Es sind maximal 300 Tabsheets die erzeugt werden.

Meine Idee ist bisher, 300 Tabsheets zu erzeugen und abhängig davon
wieviele gebraucht werden, die übrigen Tab-Köpfe auszublenden.

Da gibt es doch bestimmt eine sauberere Methode?!

Gruß
Sebastian

Sherlock 1. Jul 2008 12:58

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
...und das sagt die Delphi Hilfe dazu:

Zitat:

Zur Laufzeit fügen Sie neue Seiten hinzu, indem Sie das Objekt für die Seite erzeugen und seine Eigenschaft PageControl angeben:

Delphi-Quellcode:
NewTabSheet = TTabSheet.Create(PageControl1);
NewTabSheet.PageControl := PageControl1;

Ich würde also dann ein neues Tabsheet erzeugen, wenn eines gebraucht wird, und nicht vorsorglich 300 anlegen...

Aber bist Du sicher, daß Du das mit PageControls machen möchtest? Wären Delphi-Referenz durchsuchenTTabControls nicht besser geeignet?

Sherlock

toms 1. Jul 2008 12:59

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Ich würde nur jene Tabsheets erzeugen, welche wirklich gebraucht werden.

S20000 1. Jul 2008 14:25

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
TTabControl habe ich noch nie benutzt. Wenn das besser/flexibler
ist nehme ich das. Ich nehme an, dass erstellen der
Tabs zur Laufzeit ist auch hier möglich?!

marabu 1. Jul 2008 14:26

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Hallo Sebastian,

selbst wenn es nur 30 TabSheets wären, läge ein Design-Fehler vor.

Kannst du deinen Anwendungsfall ein wenig beschreiben?

Freundliche Grüße

S20000 1. Jul 2008 14:33

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
KLar. Jedes Sheet soll einen StringGrid beinhalten.
Auf diese Weise stelle ich themengebundene Variablen/Messwerte dar, die durch
die verschiedenen Tabs gruppiert werden. Ich bin für Anregungen,
wie man das besser darstellen kann natürlich offen.

marabu 1. Jul 2008 14:41

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Wäre es da nicht geschickter, ein einziges StringGrid zu verwenden, dessen Inhalt und Layout über ein geeigneteres UI-Control gesteuert wird?

Wenn du bisher 300 Tabsheet-Titel für die Steuerung vorgesehen hast, so könnte ich mir diese hierarchisch aufbereitet in einem TreeView-Control vorstellen.

stifflersmom 1. Jul 2008 14:43

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Zitat:

Zitat von S20000
KLar. Jedes Sheet soll einen StringGrid beinhalten.
Auf diese Weise stelle ich themengebundene Variablen/Messwerte dar, die durch
die verschiedenen Tabs gruppiert werden. Ich bin für Anregungen,
wie man das besser darstellen kann natürlich offen.

Erstelle auf der linken Seite eine Stringlist,
die alle "Themen" Deiner Meßwerte aufzeigt.
In Abhängigkeit des gewählten Eintrages in Deiner Stringliste
wird in der Mitt ein StringGrid mit den dementsprechenden Daten gefüllt.

Vielleicht entspricht das nicht dem idealen Design-Guide,
dafür ist die Wartung UND Benutzung allerdings übersichtlich.

Moni

stifflersmom 1. Jul 2008 14:45

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Zitat:

Zitat von marabu
Wäre es da nicht geschickter, ein einziges StringGrid zu verwenden, dessen Inhalt und Layout über ein geeigneteres UI-Control gesteuert wird?

Wenn du bisher 300 Tabsheet-Titel für die Steuerung vorgesehen hast, so könnte ich mir diese hierarchisch aufbereitet in einem TreeView-Control vorstellen.

Stimmt, eine Tree-Komponente ist wesentlich besser
zum Gliedern geeignet, als einfach nur eine StringListe

S20000 1. Jul 2008 14:56

Re: PageControl mit Tabsheets zur Laufzeit erzeugen
 
Hi,
an das TreeView Element hatte ich auch schon gedacht.
Bleibt immer noch das Problem, dass Abhängig von
der Anwendung mehr oder weniger "Themen" in der
TreeView Liste vorhanden sein sollen.

Danke für eure Anregungen.
Sebastian


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Seite 1 von 2  1 2      

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