#PB_Event_Menu und #PB_Event_Gadget gleichzeitig abfragen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

#PB_Event_Menu und #PB_Event_Gadget gleichzeitig abfragen?

Beitrag von Delle »

Dieser Check hat mir gute Dieste geleistet, nur leider geht ja mit PB4 anscheinend #PB_EventType_ReturnKey nicht mehr :-(

Funktion: Text absenden wenn "Absenden"-Button gedrückt wurde, oder "Return" im Eingabefeld.

Code: Alles auswählen

If EventID = #PB_Event_Gadget

If (EventGadget()=#String_0 And EventType()=#PB_EventType_ReturnKey) Or EventGadget()=#Button_8
...
EndIf

EndIf
Ich habe nun einfach einen Shortcut angelegt:

Code: Alles auswählen

AddKeyboardShortcut(0, #PB_Shortcut_Return,15)
Wie frage ich dann aber nun ab, ob der Shortcut auftritt, WENN er im String_0 gedrückt wird? Den Shortcut erkennt er, mehr macht er aber auch nicht:

Code: Alles auswählen

If EventID = #PB_Event_Menu

Debug EventMenu()

If (EventGadget()=#String_0 And EventMenu()=15) Or EventGadget()=#Button_8
...
EndIf

EndIf
PB 6.21 | Win 11
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

GetActiveGadget()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Syntax

Ergebnis = GetActiveGadget()
Beschreibung

Gibt die '#Gadget' Nummer des Gadgets zurück, welches gerade den Tastatur-Fokus hat. Wenn kein Gadget den Fokus hat, wird -1 zurückgegeben.

Beispiel:

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 270, 70, "GetActiveGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    StringGadget  (0, 10, 10, 250, 20, "Press escape...")
    StringGadget  (1, 10, 40, 250, 20, "Press escape...")
    AddKeyboardShortcut(0, #PB_Shortcut_Escape, 1)
    SetActiveGadget(0)
    Repeat
      Event = WaitWindowEvent()
      If Event = #PB_Event_Menu And EventMenu() = 1
        MessageRequester("Test", "Escape pressed in Gadget " + Str(GetActiveGadget()))
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf
Unterstützte OS

Alle
Bild
Antworten