![]() |
Weiter / Zurück Dialog
Liste der Anhänge anzeigen (Anzahl: 1)
Moin zusammen,
ich bin auf der Suche nach einer eleganten Lösung für einen Dialog von der Sorte "Weiter" / "Zurück" / "Abbrechen". Ich habe das im Moment so gelöst, dass ich jede Seite auf ein eignes Panel gepackt habe, und bei einem Click auf den Button "Weiter" bzw. "Zurück", das passende Panel eingeblendet wird, aber irgendwie wird das langsam recht kompliziert, wenn eine neue Seite dazu kommen soll. Wie kann ich das denn mal besser lösen? :gruebel: Damit klar ist, was ich meine, nochmal ein Bild im Anhang. Gruß Malte |
Re: Weiter / Zurück Dialog
ich denke mal, dass die Jedis dafür eine Lösund parat haben ("InstallWizard" oder so ähnlich glaube ich suchst du!)... ;)
|
Re: Weiter / Zurück Dialog
Hallo,
ich verwende da immer ein PageControl mit ausgeblendeten Tabs. Gruß xaromz |
Re: Weiter / Zurück Dialog
Ich würde da Frames verwenden...
|
Re: Weiter / Zurück Dialog
Hi besten Dank für die schnellen Tips. :dp:
Zitat:
Gruß Malte |
Re: Weiter / Zurück Dialog
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich Dich richtig verstehe, packst Du die Panels übereinander auf das Formular. Dadurch das sie alle hintereinanderliegen, wird es kompliziert, diese zu verwalten.
Schonmal daran gedacht, die Panels untereinander zu legen (Beispielscreenshot im Anhang). So könntest Du im FormCreate das Formular skalieren und dann alle Panels auf Client setzen bzw. anordnen. |
Re: Weiter / Zurück Dialog
Ich habe auch mal n Installer geschrieben und habe es so gemacht.
Du hast ne Variable vom Typ Integer sagen wir iStatus. Dann hab ich GroupBoxen auf der Form gehabt und den Zurueck-Button der so aussehen koennte:
Delphi-Quellcode:
Die UpdateGUI sieht dann so aus:
procedure TFrmMain.ZurueckClick(Sender: TObject);
Begin If (iStatus > 0) Then Dec(iStatus); UpdateGUI; End;
Delphi-Quellcode:
Vlt. hilft dir die Anregung ja!
Procedure TForm1.UpDateGUI;
Begin GroupBox_Start.Visible := (iStatus = 0); GroupBox_Eula.Visible := (iStatus = 1); GroupBox_InstallPath.Visible := (iStatus = 2); GroupBox_ProgramGroups.Visible := (iStatus = 3); GroupBox_InstallationOverview.Visible := (iStatus = 4); GroupBox_Installation.Visible := (iStatus = 5); GroupBox_Fertig.Visible := iStatus = 6; Zurueck.Visible := (iStatus >= 1); Weiter_Installieren.Enabled := (iStatus <= 4); If GroupBox_Eula.Visible Then Begin Weiter_Installieren.Enabled := False; Label18.Caption := GetHardDiskSpace + ' GB'; End; If (iStatus = 3) Then GetProgramGroupEntries(GetStartMenuPath, Memo1.Lines); If (iStatus = 4) Then Begin Weiter_Installieren.Caption := '&Installieren'; Memo2.Lines.Clear; Memo2.Lines.Add('Ziel-Ordner:'); Memo2.Lines.Add(' ' + ExcludeTrailingBackSlash(EditInstallPath.Text)); Memo2.Lines.Add(' '); Memo2.Lines.Add('Startmenü-Ordner:'); Memo2.Lines.Add(' ' + Edit1.Text); End Else Weiter_Installieren.Caption := '&Weiter >'; Zurueck.Enabled := (iStatus > 0); If RadioButton1.Checked Then Weiter_Installieren.Enabled := True; If (iStatus = 5) Then Begin Zurueck.Enabled := False; Weiter_Installieren.Enabled := False; Abbrechen.Enabled := False; InstallProgramFiles; End; If iStatus = 6 Then Begin Zurueck.Enabled := False; Weiter_Installieren.Caption := '&Beenden'; Abbrechen.Enabled := False; End; End; |
Re: Weiter / Zurück Dialog
Hi,
vielen Dank für die Ideen... @Mackhack: Irgendwie sieht dein Source deutlich einfacher aus als meiner. Da kann ich bestimmt noch ein paar Ideen klauen. Ich glaube ich nehm die Lösung mit dem PageControl, da muss ich mir keine Gedanken um das Anzeigen machen, sondern kann einfach nur ActivePageIndex auf die passende Seite setzen und fertig. Gruß Malte |
Re: Weiter / Zurück Dialog
Der Code ist schon 5 Jahre alt daher siehst du auch Dinge wie Memo1 oder so. Heute benenn ich die Sinnvoller ;-) Aber klar nimm die Idee ruhig, dazu ist sie gepostet!
|
Re: Weiter / Zurück Dialog
Zitat:
Zur einfacheren Verwaltung könntest du dir eine Frame anlegen und von der ableiten, dann kannst du einfach mit einer in der Basis virtuellen Funktion einfach abprüfen lassen, ob z.B. der Weiter-Button erlaubt ist (z.B: wenn der User noch Daten eingeben muss)... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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 by Thomas Breitkreuz