AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi PageControl mit Tabsheets zur Laufzeit erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

PageControl mit Tabsheets zur Laufzeit erzeugen

Ein Thema von S20000 · begonnen am 1. Jul 2008 · letzter Beitrag vom 2. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#1

PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 13:47
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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#2

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 13:58
...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
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 13:59
Ich würde nur jene Tabsheets erzeugen, welche wirklich gebraucht werden.
Thomas
  Mit Zitat antworten Zitat
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#4

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:25
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?!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:26
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
  Mit Zitat antworten Zitat
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#6

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:33
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:41
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.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
380 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:43
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
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
380 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:45
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
  Mit Zitat antworten Zitat
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#10

Re: PageControl mit Tabsheets zur Laufzeit erzeugen

  Alt 1. Jul 2008, 15:56
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 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