Event wird ausgeführt, obwohl nicht alle Bedingungen erfüllt

Anfängerfragen zum Programmieren mit PureBasic.
bastibasti
Beiträge: 13
Registriert: 20.02.2011 16:51

Event wird ausgeführt, obwohl nicht alle Bedingungen erfüllt

Beitrag von bastibasti »

Hi,

ich habe ein string gadget, in dem ich daten eingeben kann

Code: Alles auswählen

;######### INPUT ##############
  TextGadget(2, inputfield_x, inputfield_y, 200, 25, lang_mainwindow_inputhere, #PB_Text_Center)
  StringGadget(3, inputfield_x, inputfield_y.b+text_stringgadget_offset.b, 200, 25, "")
  AddKeyboardShortcut(#Window, #PB_Shortcut_Return, 100)  ;Eingabefenster soll auf "Enter" eine aktion ausführen
 
dann frage ich in der loop folgendes ab

Code: Alles auswählen

 If EventMenu() =  100 And GetActiveGadget() = 3 And eventlock=0
  eventlock=1
  input.s=GetGadgetText(3)
  If input.s<>""
  .
.
.
.
end if
Jetzt kommt es vor, das ich in das feld zB eingebe:
1 ENTER
2 ENTER
und bei 3 wird automatisch der event ausgelöst. (passiert auch bei a b c etc)

also immer bei der dritten eingabe wird sofort nach dem eingegebenen character die schleife abgearbeitet.

wo ist mein Fehler??
Benutzeravatar
HeX0R
Beiträge: 2958
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Event wird ausgeführt, obwohl nicht alle Bedingungen erf

Beitrag von HeX0R »

bastibasti hat geschrieben:wo ist mein Fehler??
In Zeile 203 steht ein WaitWindowEvent() zuviel.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Event wird ausgeführt, obwohl nicht alle Bedingungen erf

Beitrag von Kiffi »

bastibasti hat geschrieben:wo ist mein Fehler??
Aktion wird groß geschrieben.
Hygge
bastibasti
Beiträge: 13
Registriert: 20.02.2011 16:51

Re: Event wird ausgeführt, obwohl nicht alle Bedingungen erf

Beitrag von bastibasti »

Ich verwende nur ein WaitWindowEvent(50) weiter unten im Code,

was genau löst den Fehler aus? Das WaitWindowEvent(50) oder die erneute Abfrage von EventMenu() ??

Edit:

habe es nun so gelöst das das EventMenu() nur einmal abgefragt wird

Code: Alles auswählen

Select WaitWindowEvent(50)
   Case #PB_Event_Menu
        Select EventMenu()  ; To see which menu has been selected
          Case 11 ; About
            MessageRequester("About", "", 0)
          Case 7; quit
            quit=1
          Case 100 ;enter button received
            enter.b=1
        EndSelect
    ;   Case #PB_Event_Gadget
      Case #PB_Event_CloseWindow
        Quit = 1
 EndSelect
 
 If enter.b=1 And GetActiveGadget() = 3 
   enter.b=0
     input.s=GetGadgetText(3)
     If input.s<>""
Antworten