Seite 1 von 1
Neues fentser ohne altes zu schließen
Verfasst: 08.06.2006 17:54
von a14xerus
Wenn ich ein aktives Fenster geöffnet habe, und ein neus per OpenWindow() öffne, schließt sich mei naktives Fentser.. wie kann man das verhindern
(die beiden Fenster haben NICHT die gleiche ID: OpenWindow(WindowID,100,100,.....) )
TIA
Verfasst: 08.06.2006 17:56
von roherter
Normalerweise schließst sich das andere nicht,ohne code kann ich nix dazu sagen.

Verfasst: 08.06.2006 17:57
von Tafkadasom2k5
Verlässt du beim Öffnen des neuen Fensters vielleicht deine Eventschleife vom ersten Fenster?
...wir sieht denn ungefähr die Struktur von deiner Eventschleife aus? Hast du die Eventschleife(n) vielleicht mit dem Visual-Designer erstellen lassen (also nicht nur das Formular sondern auch die Schleifen)?
Gr33tz
Tafkadasom2k5
Verfasst: 08.06.2006 18:00
von a14xerus
Code: Alles auswählen
Procedure Open_player()
If OpenWindow(#Window_player, 375, 83, 600, 300, "AP Media Player", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateMenu(#MenuBar_0, WindowID(#Window_player))
MenuTitle("Datei")
MenuItem(#MENU_open_file, "Datei öffnen")
MenuItem(#MENU_open_url, "URL öffnen")
MenuBar()
MenuItem(#MENU_neue_liste, "Neue Wiedergabeliste")
MenuItem(#MENU_liste_speichern, "Aktuelle Wiedergabeliste speichern unter")
MenuItem(#MENU_open_liste, "Wiedergabeliste öffnen")
MenuBar()
MenuItem(#MENU_end, "Beenden")
MenuTitle("Wiedergabe")
MenuItem(#MENU_play_pause, "Play / Pause")
MenuItem(#MENU_stop, "Stop")
MenuBar()
MenuItem(#MENU_cd, "Wiedergabe von Audio CD")
MenuBar()
MenuItem(#MENU_vor, "Vor")
MenuItem(#MENU_zurueck, "Zurück")
MenuItem(#MENU_cd_eject, "CD auswerfen")
MenuTitle("Extras")
MenuItem(#MENU_about, "About AP Media Player")
MenuItem(#MENU_update, "Update")
MenuBar()
MenuItem(#MENU_einstellungen, "Einstellungen")
EndIf
If CreateGadgetList(WindowID(#Window_player))
EndIf
EndIf
EndProcedure
;#######################################
;#######################################
Procedure Open_Window_URL()
If OpenWindow(#Window_URL, 420, 277, 408, 63, "URL öffnen", #PB_Window_SystemMenu | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_URL))
StringGadget(#String_URL, 10, 10, 390, 20, "")
ButtonGadget(#Button_URL_ok, 180, 40, 50, 20, "OK")
EndIf
EndIf
EndProcedure
;#######################################
;#######################################
Procedure URL()
Open_Window_URL()
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = #String_URL
ElseIf GadgetID = #Button_URL_ok
GetGadgetText(#String_URL)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndProcedure
ds sind die proceduren
und in der schleife des geöffneten Fensters Open_Player():
//edit:
ich verlasse die eventschleife durch eine procedure, die aber in der schleife aufgerufen wird, natürlcih ist sie auserhalb der schleiße geschreiben...
//edit:
heißt das , ich müsste die komplette neue eventschleife in die alte einbauen.. ??
ich habs mit procedure gemacht, weil ich es so übersichtlicher finde, oder ist es, weil ich in der zweiten schleiße den variablen event u.s.w die konstanten des neuen fensters zuordne??
Verfasst: 08.06.2006 18:34
von ts-soft
Kann jetzt nur zu dem geposten Source antworten:
;#######################################
;#######################################
Code: Alles auswählen
Procedure URL()
Open_Window_URL()
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_CloseWindow
If WindowID = #Window_player
Break ; ende
ElseIf WindowID = #Window_URL
CloseWindow(#Window_URL)
EndIf
ElseIf Event = #PB_Event_Gadget
If GadgetID = #String_URL
ElseIf GadgetID = #Button_URL_ok
GetGadgetText(#String_URL)
EndIf
EndIf
ForEver
EndProcedure
Wenn #Window_URL geschlossen wird, bleibt #Window_player offen
umgekehrt werden beide geschlossen
Verfasst: 08.06.2006 18:36
von a14xerus
naj.. wenn die procedure aufgerufen wird, schließt sich Open_Player() udn Open_Window_URL() öffnet sich, wenn ich URL schließe endet das Programm
Verfasst: 09.06.2006 09:31
von real
Ich hab die repeat : until Schleife mal in die jeweilige Prozedur gehängt. Außerdem hab ich das mal so vervollständigt, dass man es als Ganzes kompilieren kann. Was Du bei Deinen Ereignisabfragen zur Sicherheit nicht vergessen solltest ist, die WindowID abzufragen. Außerdem solltest Du das URL-Window bei Click auf Okay oder den Schließen-Button oben rechts durch CloseWindow() schließen lassen - die Anwendung soll ja nicht komplett beendet werden.
Code: Alles auswählen
Enumeration
#Window_player
#MenuBar_0
#MENU_open_file
#MENU_open_url
#MENU_neue_liste
#MENU_liste_speichern
#MENU_open_liste
#MENU_end
#MENU_play_pause
#MENU_stop
#MENU_cd
#MENU_vor
#MENU_zurueck
#MENU_cd_eject
#MENU_about
#MENU_update
#MENU_einstellungen
#Window_URL
#String_URL
#Button_URL_ok
EndEnumeration
Procedure URL()
If OpenWindow(#Window_URL, 420, 277, 408, 63, "URL öffnen", #PB_Window_SystemMenu | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_URL))
StringGadget(#String_URL, 10, 10, 390, 20, "")
ButtonGadget(#Button_URL_ok, 180, 40, 50, 20, "OK")
EndIf
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget And WindowID = #Window_URL
Select GadgetID
Case #String_URL
; fehlt
Case #Button_URL_ok
MessageRequester("URL",GetGadgetText(#String_URL))
Break
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow And WindowID = #Window_URL
EndIf
CloseWindow(#Window_URL)
EndProcedure
;#######################################
;#######################################
Procedure Open_player()
If OpenWindow(#Window_player, 375, 83, 600, 300, "AP Media Player", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateMenu(#MenuBar_0, WindowID(#Window_player))
MenuTitle("Datei")
MenuItem(#MENU_open_file, "Datei öffnen")
MenuItem(#MENU_open_url, "URL öffnen")
MenuBar()
MenuItem(#MENU_neue_liste, "Neue Wiedergabeliste")
MenuItem(#MENU_liste_speichern, "Aktuelle Wiedergabeliste speichern unter")
MenuItem(#MENU_open_liste, "Wiedergabeliste öffnen")
MenuBar()
MenuItem(#MENU_end, "Beenden")
MenuTitle("Wiedergabe")
MenuItem(#MENU_play_pause, "Play / Pause")
MenuItem(#MENU_stop, "Stop")
MenuBar()
MenuItem(#MENU_cd, "Wiedergabe von Audio CD")
MenuBar()
MenuItem(#MENU_vor, "Vor")
MenuItem(#MENU_zurueck, "Zurück")
MenuItem(#MENU_cd_eject, "CD auswerfen")
MenuTitle("Extras")
MenuItem(#MENU_about, "About AP Media Player")
MenuItem(#MENU_update, "Update")
MenuBar()
MenuItem(#MENU_einstellungen, "Einstellungen")
EndIf
If CreateGadgetList(WindowID(#Window_player))
EndIf
EndIf
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
If Event = #PB_Event_Menu
Select EventMenu()
Case #MENU_open_url
URL()
Case #MENU_end
End
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow And WindowID = #Window_player
EndProcedure
Open_Player()