warum gibt es hier eine Änderung der Funktionalität, dass gleichlautende Befehle nach Öffnen eines weiteren Fensters nicht mehr korrekt ausgeführt werden?
Programm aufrufen und als erstes ALT+H oder auf "Ein" klicken ...
Danach das zweite Fenster mit "Korrektur" aufrufen und danach erneut ALT+H aufrufen, dann wird das Problem erkennbar.
Mit einem SetActivWindow lässt sichs nicht lösen, deshalb ists im Quelltext auskommentiert ...
Code: Alles auswählen
;- Window Constants
;
Enumeration
#Window_0
#Window_EK
EndEnumeration
;- Gadget Constants
;
Enumeration
#F3DI
#Button_OK
#Button_Dlte
#EKButton_OK
#EKButton_L
#F3Help
#Helpin
#HelpButton
#EKF3DI
EndEnumeration
#LVM_FIRST = $1000
#LVM_GETHEADER = #LVM_FIRST + 31
;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 18)
Global FontID2
FontID2 = LoadFont(2, "Arial", 18, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Arial", 6)
Global FontID4
FontID4 = LoadFont(4, "Arial", 8)
Global FontID5
FontID5 = LoadFont(5, "Arial", 7)
Procedure Open_Window_0()
If OpenWindow(#Window_0, 0, 0, 1024, 650, "Hilfe", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_TitleBar)
If CreateGadgetList(WindowID(0))
Frame3DGadget(#F3Help, 7, 10, 40, 40, "&Hilfe")
ButtonGadget(#HelpButton, 11, 25, 32, 20, "Ein",#PB_Button_Toggle)
SetGadgetState(#HelpButton,0)
hilfe$="Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"Hilfe"+Chr(10)+"usw."
TextGadget(#Helpin, 10, 35, 34, 560, hilfe$)
SetGadgetFont(#Helpin, FontID5)
HideGadget(#Helpin,1)
Frame3DGadget(#F3DI, 55, 10, 440, 600, "Erfassung")
ButtonGadget(#Button_OK, 360, 240, 80, 24, "Erfassen")
ButtonGadget(#Button_Dlte, 360, 300, 80, 24, "Korrigieren")
EndIf
EndIf
EndProcedure
Procedure Open_Window_EK()
If OpenWindow(#Window_EK, 0, 0, 500, 420, "Korrektur", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_EK))
Frame3DGadget(#EKF3DI, 55, 10, 400, 400, "Korrektur")
ButtonGadget(#EKButton_OK, 360, 240, 80, 24, "Korrigieren")
ButtonGadget(#EKButton_L, 360, 300, 80, 24, "Abbrechen")
EndIf
EndIf
EndProcedure
Open_Window_0()
ShowWindow_(WindowID(0),#SW_MAXIMIZE)
CreateMenu(0, WindowID(0))
MenuTitle("&Datei")
MenuItem( 1, "&Neu")
MenuItem( 2, "&Laden")
MenuItem( 3, "&Speichern")
; MenuItem( 4, "Nicht definiert")
MenuBar()
; MenuItem( 5, "Nicht definiert")
MenuItem( 6, "&Beenden")
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Alt |#PB_Shortcut_H, 734)
Programmschleifenstart:
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
If Event = #PB_Event_Menu
If EventMenu()=734 And Event = #PB_Event_Menu
If hilfe = 1
Gosub hilfe1
Else
Gosub hilfe0
EndIf
EndIf
EndIf
If Event = #PB_Event_Gadget
GadgetID = EventGadget()
If GadgetID = #HelpButton
If hilfe = 1
Gosub hilfe1
Else
Gosub hilfe0
EndIf
EndIf
If GadgetID = #Button_Dlte
Gosub eintragloeschen
EndIf
If GadgetID = #Button_OK
Gosub datensatzerzeugen
EndIf
EndIf
Until WindowID=#Window_0 And event= #PB_Event_CloseWindow
Ergebnis=MessageRequester("Programm beenden", "Programm schliessen?", #PB_MessageRequester_YesNoCancel)
If Ergebnis=7 Or Ergebnis=2
Goto Programmschleifenstart
EndIf
End
hilfe0:
hilfe=1
;SetActiveWindow(#Window_0)
HideGadget(#Helpin,0)
Frame3DGadget(#F3Help, 7, 10, 40, 600, "&Hilfe")
ButtonGadget(#HelpButton, 11, 585, 32, 20, "Aus",#PB_Button_Toggle)
SetGadgetState(#HelpButton,1)
Return
hilfe1:
hilfe=0
;SetActiveWindow(#Window_0)
HideGadget(#Helpin,1)
Frame3DGadget(#F3Help, 7, 10, 40, 40, "&Hilfe")
ButtonGadget(#HelpButton, 11, 25, 32, 20, "Ein",#PB_Button_Toggle)
SetGadgetState(#HelpButton,0)
Return
datensatzerzeugen:
datensatzende:
Return
;------------------------------------------------------------------------------------------
eintragloeschen:
Open_Window_EK()
SetWindowTitle(#Window_EK, "Korrektur: "+ abc$)
repcor:
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
If Event = #PB_Event_Menu
EndIf
If Event = #PB_Event_Gadget
GadgetID = EventGadget()
If GadgetID = #EKButton_OK
Goto startchange
EndIf
If GadgetID = #EKButton_L
Goto elende
EndIf
EndIf
Until WindowID=#Window_EK And event= #PB_Event_CloseWindow
Goto elende:
elende:
CloseWindow(#Window_EK)
Return
startchange:
Return