Hallo zusammen,
nachdem ich jetzt mein erstes Programm fertig habe, versuche ich dieses zu verbessern. Dazu gehört auch, das ich die Einstellungen für die Verzeichnisauswahl nicht mehr im Hauptfenster haben möchte.
Ich möchte im Window_0 einen Button haben, worauf steht "Einstellungen" und wenn man darauf klickt, wechselt man auf Window_1 wo dann die Verzeichnisauswahl erfolgt und wenn man dort dann auf den Button "Hauptfenster" klickt, dann soll wieder das Window_0 erscheinen. Nur irgendwie kriege ich das nicht so ganz hin.
Wie mache ich das denn am besten? Habt ihr da den ein oder anderen Codeschnipsel für mich?
Danke PureNoob
1 Programm mit 2 Fenstern bauen
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
http://www.purebasic.fr/english/viewtop ... 031#175031
da ist das posting mit meinem codeschnipsel, weiter oben und weiter unten sind noch vorschläge von anderen kollegen.
falls dein englisch nicht so toll ist, lass dich nicht abschrecken, der code ist schließlich in PB.
da ist das posting mit meinem codeschnipsel, weiter oben und weiter unten sind noch vorschläge von anderen kollegen.
falls dein englisch nicht so toll ist, lass dich nicht abschrecken, der code ist schließlich in PB.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
mist, Kaeru, was mache ich nun mit meinem Code?
Ich poste ihn einfach trotzdem
Grüße ... Kiffi
Ich poste ihn einfach trotzdem

Code: Alles auswählen
Enumeration ; Windows
#Window_1
#Window_2
EndEnumeration
Enumeration ; Gadgets
#Window_1_Button_1
EndEnumeration
Procedure Window_1_Open()
OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 300, 300, "Fenster1")
CreateGadgetList(WindowID(#Window_1))
ButtonGadget(#Window_1_Button_1, 5, 5, 100, 20, "Fenster 2 öffnen")
EndProcedure
Procedure Window_2_Open()
OpenWindow(#Window_2, #PB_Ignore, #PB_Ignore, 100, 100, "Fenster2")
CreateGadgetList(WindowID(#Window_2))
EndProcedure
Window_1_Open()
Repeat
WWE = WaitWindowEvent()
Select WWE
Case #PB_Event_CloseWindow ; Schliessen-Kreuz angeklickt?
Select EventWindow() ; in welchem Fenster?
Case #Window_1 ; in Fenster1 -> Programmende
Quit = #True
Case #Window_2 ; in Fenster2 -> Fenster2 wird geschlossen
CloseWindow(#Window_2)
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Welches Gadget hat das Ereignis ausgelöst?
Case #Window_1_Button_1
Window_2_Open()
EndSelect
EndSelect
Until Quit = #True
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Noch geschickter wäre es natürlich wenn man das zweite Fenster gleich am anfang erstellt und dann nur mittels HideWindow erscheinen und verschwinden lässt...
Das kann man ganz leicht in Kiffis Code abändern...
Das kann man ganz leicht in Kiffis Code abändern...
Code: Alles auswählen
Enumeration ; Windows
#Window_1
#Window_2
EndEnumeration
Enumeration ; Gadgets
#Window_1_Button_1
EndEnumeration
Procedure Window_1_Open()
OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 300, 300, "Fenster1")
CreateGadgetList(WindowID(#Window_1))
ButtonGadget(#Window_1_Button_1, 5, 5, 100, 20, "Fenster 2 öffnen")
EndProcedure
Procedure Window_2_Open()
OpenWindow(#Window_2, #PB_Ignore, #PB_Ignore, 100, 100, "Fenster2")
HideWindow(#Window_2,1) ; Sofort verstecken
CreateGadgetList(WindowID(#Window_2))
EndProcedure
Window_1_Open()
Window_2_Open()
Repeat
WWE = WaitWindowEvent()
Select WWE
Case #PB_Event_CloseWindow ; Schliessen-Kreuz angeklickt?
Select EventWindow() ; in welchem Fenster?
Case #Window_1 ; in Fenster1 -> Programmende
Quit = #True
Case #Window_2 ; in Fenster2 -> Fenster2 wird geschlossen
HideWindow(#Window_2,1) ; Wieder verstecken
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Welches Gadget hat das Ereignis ausgelöst?
Case #Window_1_Button_1
HideWindow(#Window_2,0) ; Erscheinen lassen
EndSelect
EndSelect
Until Quit = #True
(\/) (°,,,°) (\/)