Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Veränderung einer Form


Sleipnir - So 23.12.07 12:35
Titel: Veränderung einer Form
Hallo :)
Ich möchte ein kleines Installationsprogramm schreiben.
Nun ist es so, daß die Installation in verschiedenen Schritten abläuft, jedoch alles in einem Fenster stattfindet.
Meine Frage ist wie die Form verändert wird, wenn man auf den "weiter"-Knopf drückt. Funktioniert das mit Frames oder wie?


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am So 23.12.2007 um 12:42


Popov - So 23.12.07 12:59

Eine Möglichkeit: TNotebook. Zu finden in Win 3.1 Komponenten.

Allerdings ist das eine veraltete, aber voll funktionierende Komponente aus Win 3.1 Zeiten. Es gibt keine Hilfe dazu.


Christian S. - So 23.12.07 13:03

Die neuere Version dürfte wohl TPageControl sein. Für jeden Schritt legst Du eine Seite an und stellst die TabVisible-Eigenschaft auf False. Dann ist das PageControl nicht mehr sichtbar und Du kannst im Quellcode die Seiten durchschalten


Sleipnir - So 23.12.07 13:46

Danke schonmal.
Jede Seite ist also ein Tabsheet. Aber wie erstelle ich jetzt beispielsweise ein Label, das nur für Tabsheet1 sichtbar ist?


Christian S. - So 23.12.07 13:56

Du fügst nur der einen Seite hinzu und der anderen nicht. Achte drauf, dass Du ein TPageControl und kein TTabControl benutzt. :-)


Sleipnir - So 23.12.07 14:33

Ja, ich benutze TPageControl, aber so ganz hab ich es noch nicht verstanden.
Zeil wäre sowas: http://img54.imageshack.us/img54/6699/zielse4.jpg

So ist es bestimmt falsch oder? http://img54.imageshack.us/img54/6642/tabblt6.jpg
Wenn ich Visible auf False setze, würde ich ja nichts mehr davon sehen.


Christian S. - So 23.12.07 14:36

Das ist schon richtig. Bei den Sheets setzt Du noch TabVisible auf "False", damit man nicht sieht, dass es ein PageControl ist.

Jetzt packst Du z.B. mal einen Button auf die erste Seite, nennst ihn "weiter". Im Click-Ereignis kannst Du dann die näcshte Seite ansteuern:

Delphi-Quelltext
1:
PageControl1.ActivePage := TabSheet2                    


Sleipnir - So 23.12.07 15:01

Ok, hatte Visible mit TabVisible verwechselt :roll:

Eine Frage noch: Im Moment sind die einzelnen Tabsheets noch hervorgehoben. Bei meinem ersten Link sind dort so nette Grenzen. Wie bekomm ich die hin?


Leuchtturm - So 23.12.07 15:04

Irgendwo hier in der Unitsammlung hat irgenwer mal eine Wizardkomponente veröffentlicht. Musste ma suchen. Vllt is das was für dich
http://www.delphi-forum.de/viewtopic.php?t=60076&highlight=wizard


Christian S. - So 23.12.07 15:14

user profile iconSleipnir hat folgendes geschrieben:
Eine Frage noch: Im Moment sind die einzelnen Tabsheets noch hervorgehoben. Bei meinem ersten Link sind dort so nette Grenzen. Wie bekomm ich die hin?
Ich glaube, Du musst den Style das PageControls auf "tsFlatButton" stellen


Sleipnir - So 23.12.07 15:21

Ok, mit tsFlatButton bzw tsButton fukntionnierts und die Abgrenzung bekomm ich mit einem Bevel hin.

Danke an alle für die schnelle Hilfe :zustimm: