Trotz jahrelanger Arbeit mit PureBasic (z.Zt. verwendete Version 5.30) habe ich immer noch Probleme mit der Ereignisbehandlung. Ich will mit Ctrl + K den Inhalt eines Stringfeldes in ein weiteres Stringfeld kopieren oder mit Ctrl + L
letzters wieder löschen. Die Codierung lautet
Code: Alles auswählen
#Window01 = 1
#Menue_0 = 2
#Feld01 = 11
#Feld02 = 12
#PB_SCut_1 = 21
#PB_SCut_2 = 22
#PB_SCut_3 = 23
If OpenWindow(#Window01, 100, 200, 500, 400, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered)
SetWindowColor(#Window01, $98FB98)
CreateStatusBar(#Window01, WindowID(#Window01))
AddStatusBarField(100)
AddStatusBarField(100)
StringGadget(#Feld01, 250, 100, 100, 20, "")
StringGadget(#Feld02, 250, 150, 100, 20, "")
AddKeyboardShortcut(#Window01, #PB_Shortcut_Control | #PB_Shortcut_K, #PB_SCut_1) ;Kopieren
AddKeyboardShortcut(#Window01, #PB_Shortcut_Control | #PB_Shortcut_L, #PB_SCut_2) ;Löschen
AddKeyboardShortcut(#Window01, #PB_Shortcut_Control | #PB_Shortcut_F3, #PB_Shortcut_F3)
Repeat
Event0 = WaitWindowEvent()
EventT = EventType()
EventG = EventGadget()
WindowID_LL = EventWindow()
EventMen_IL = EventMenu()
Flg_SL$ = "A"
If Event0 = 0
Txt_SL$ ="Nix los"
Else
If EventG < 1
Txt_SL$ ="Nix los"
Else
If EventG = #PB_SCut_1 Or EventG = #PB_SCut_2 Or EventG = #PB_SCut_3
Txt_SL$ ="Prufen"
EndIf
If EventT < 0 And EventG <> #PB_SCut_1 And EventG <> #PB_SCut_2 And EventG <> #PB_SCut_3
Txt_SL$ ="Nix los"
Else
Select EventG
Case #Feld01
Txt_SL$ = "Feld 1"
StatusBarText(#Window01, 0, Txt_SL$)
Flg_SL$ = "K"
Case #Feld02
Txt_SL$ = "Feld 2"
StatusBarText(#Window01, 0, Txt_SL$)
Flg_SL$ = "K"
Case #PB_SCut_1
Txt_SL$ = "Kopiert"
SetGadgetText(#Feld02, GetGadgetText(#Feld01))
StatusBarText(#Window01, 0, Txt_SL$)
Flg_SL$ = "J"
Case #PB_SCut_2
Txt_SL$ = "Gelöscht"
SetGadgetText(#Feld02, "")
StatusBarText(#Window01, 0, Txt_SL$)
Flg_SL$ = "J"
Case #PB_SCut_3
Txt_SL$ = "Kopiert"
SetGadgetText(#Feld02, "")
StatusBarText(#Window01, 0, Txt_SL$)
Flg_SL$ = "J"
Default
Txt_SL$ = "außerhalb"
Flg_SL$ = "O"
EndSelect
EndIf
EndIf
EndIf
If Flg_SL$ = "J" Or Flg_SL$ = "K"
Debug Flg_SL$ + ": " + "EventG " + Str(EventG) + " EventMen_IL " + Str(EventMen_IL) + " " + Txt_SL$
Flg_SL$ = "E"
EndIf
If Event0 = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIfMeine Fragen: Muß der Eventtyp hier Focus mit abgefragt werden, was bedeuten Event = 0 oder Event = -1 dies ist nirgens beschrieben.
Auf eine Antwort von euch bin ich schon gespannt.
Gruß forsti
Edit by NicTheQuick: Code-Tags gesetzt