Seite 1 von 1
1 Programm mit 2 Fenstern bauen
Verfasst: 28.02.2008 13:03
von PureNoob
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
Verfasst: 28.02.2008 13:15
von Kaeru Gaman
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.
Verfasst: 28.02.2008 13:23
von Kiffi
mist, Kaeru, was mache ich nun mit meinem Code?
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
Grüße ... Kiffi
Es geht!
Verfasst: 28.02.2008 13:28
von PureNoob
Juhuu Super Danke
Problem gelöst!
Wenn mein Programm endgültig fertig ist, präsentiere ich es hier mal.
Gruss PureNoob
Verfasst: 28.02.2008 13:28
von Kaeru Gaman

so ging mir das damals auch....
ich setz mich hin und schreib ausführlich kommentiert und übersichtlich gegliedert,
und als ich fertig bin haben Tranquil, Noah und Netmaestro schon codes gepostet....
tel aviv, mondamin
Verfasst: 28.02.2008 14:22
von KeyKon
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...
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