![]() |
kleiner Wizard, Vorgehen?
hi
möchte einen kleinen assistenten machen um den user die eingabe diverser daten zu erleichtern(dazu ist er ja auch da ;) ). möchte einfach verschiedene formular. meine frage nun: wie würdet ihr das lösen? folgende möglichkeiten sind mir in den sinn gekommen: - verschiedene forumlare (form1, form2 etc...) oder - mit versteckten feldern (zuerst sind die aktiv, dann die andern, dann die dritten etc...) welche vor- und nachteile seht ihr? gruss, ims |
Re: kleiner Wizard, Vorgehen?
Hallo ims,
ich würde die PageControl Komponente mit TabSheets verwenden. Die Reiter können auch ausgeblendet werden. Das ist IMHO leichter als mit mehreren Formularen zu arbeiten. Gruß s14 |
Re: kleiner Wizard, Vorgehen?
Also ich habe mit folgendem Vorgehen sehr gute erfahrungen gemacht:
Ich erstelle ein Form mit einer Tab-Komponente drauf. Die Tabs werden einfach unsichtbar gemacht. Auf dem Tab werden erstmal drei pages angelegt. Dann kommen noch die Standard - Buttons für nen Wizzard drauf: Zurück, Weiter, Fertigstellen. In den Events die beim Wechseln der Tabs getriggert werden kommt die Methodik die die Buttons aktiviert / deaktiviert. Der Part natürlich überschreibbar ;-) Anhand vom dem Form leitest Du dann Deinen Wizzie ab, fügst ggf. noch Pages hinzu etc. und steuerst Die buttons entsprechend. Ist zwar einmalig ein wenig Arbeit, aber wenn Du danach nochmal nen Wizzard brauchst ist der richtig schnell fertig :) |
Re: kleiner Wizard, Vorgehen?
:wall: logisch... tabsheets. ist noch früh am morgen ;)
danke euch beiden!! gruss, ims |
Re: kleiner Wizard, Vorgehen?
Zitat:
|
Re: kleiner Wizard, Vorgehen?
Sieh mal in der OH unter TTabSheet.TabVisible nach.
|
Re: kleiner Wizard, Vorgehen?
Oh, dann hatte ich es falsch verstanden. Ich dachte man könnte nicht nur den Tabsheet ausblenden, sondern vielleicht auch den darum gemalten Reiter...
|
Re: kleiner Wizard, Vorgehen?
Zitat:
Meine OH beschreibt daher treffend: Zitat:
|
Re: kleiner Wizard, Vorgehen?
Ist schon klar. Ich suche eher eine Option der Richtung:
Delphi-Quellcode:
Mit TabVisible habe ich schon gearbeitet.
TPageControl.Style := tsNone;
|
Re: kleiner Wizard, Vorgehen?
Eine direkte Eigenschaft in TPageControl ist mir nicht bekannt.
Warum nicht in einer Schleife über alle Seiten (TPageControl.PageCount) die gewünschten Eigenschaft (TTabSheet.TabVisible) der jeweiligen Seite (TPagecontrol.Pages[]) setzen? |
Re: kleiner Wizard, Vorgehen?
Weil dann immer noch der Reiter zu sehen ist. Und genau das ist nicht gewünscht, schließlich soll der Anwender ja nicht sehen, dass er auf einem Karteireiter ist und natürlich werden so ein paar Pixel gespart :)
|
Re: kleiner Wizard, Vorgehen?
Offensichtlich bin ich nicht in der Lage, die Idee mit Worten darzustellen.
Probiere einfach einmal das:
Delphi-Quellcode:
Und Du wirst sehen, dass Du keine Reiter sehen wirst ;)
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; begin with PageControl1 do for i:= 0 to Pred(PageCount) do Pages[i].TabVisible:= False; end; |
Re: kleiner Wizard, Vorgehen?
Hmm, erst war ich begeistert, nur der Rahmen hat mich noch etwas gestört. Aber dann habe ich mal auf jedes TabSheet ein Label gemacht und nach dem Lauf Deiner Routine konnte ich kein Label sehen. Wo soll da der Sinn liegen? Da kann ich ja dem Anwender den Inhalt eines Tabsheets wieder nicht zeigen :freak:
|
Re: kleiner Wizard, Vorgehen?
Nach dem Durchlaufen der Schleife hat der Wert von PageControl1.ActivePageIndex den Wert -1 bzw PageControl.ActivePage ist nil. Weil Du ohnehin gezwungen bist, die Seiten programmseitig zu setzen (schließlich sind die Reiter ja nun verschwunden), sehe ich kein Problem, die gewünschte Seite nach der Schleife gemäß der Ablauflogik zu setzen...
Weil meine Ausführungen heute aber offensichtlich nicht das gelbe vom Ei sind, ich meine zB das:
Delphi-Quellcode:
PageControl1.ActivePageIndex:= 0;
|
Re: kleiner Wizard, Vorgehen?
Erm... ja.
Die Logik um die tabSheets entsprechend anzusteuern muss dann natürlich selber an die Buttons gehängt werden. Vergass ich das zu erwähnen? ;-) Das ist aber wie gesagt nur einmal so eine fitzelarbeit. Am ende hat man ein schönes Template für einen funktionierenden Wizzard :) |
Re: kleiner Wizard, Vorgehen?
Au ja, ich habe es gerade gesehen. Glücklicherweise kann man ja den PageIndex immer noch setzen! Cool, ich denke, dass wird mir bei Gelegenheit sicher mal helfen :xmas:
|
Re: kleiner Wizard, Vorgehen?
dachte das thema sei gegessen und wollte gleich eine weitere frage stellen da sehe ich dass mario genau das gleiche prob hatte, und die lösung auch schon da steht :-D
danke euch!! gruss, ims |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz