Eingabe über String
Eingabe über String
Ich versuche mich mit Purebasic anzufreunden und stosse gleich auf ein Hindernis:
case...
if eventType()=#PB_eventtype_returnkey
messagerequester...
Nach aktivieren des string-gadgets kann ich in den String schreiben, aber nicht mit Return beenden. Was mache ich falsch ?
In GadgetDEMO.pb erscheint unten rechts ein solcher String, und dort geht es auch nicht ??
Ich bedanke mich für Hilfe.
case...
if eventType()=#PB_eventtype_returnkey
messagerequester...
Nach aktivieren des string-gadgets kann ich in den String schreiben, aber nicht mit Return beenden. Was mache ich falsch ?
In GadgetDEMO.pb erscheint unten rechts ein solcher String, und dort geht es auch nicht ??
Ich bedanke mich für Hilfe.
- 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
StringGadgets kann man in Windows normallerweise nicht mit Return
beenden, sondern mit TAB. Du kannst Dir aber mit einem KeyBoardShortcut
behelfen.
PS: Herzlich Willkommen
Gruß
Thomas
// Nachtrag:
Hier mal ein Beispiel:
beenden, sondern mit TAB. Du kannst Dir aber mit einem KeyBoardShortcut
behelfen.
PS: Herzlich Willkommen
Gruß
Thomas
// Nachtrag:
Hier mal ein Beispiel:
Code: Alles auswählen
If OpenWindow(0, #PB_Ignore, 0, 640, 480, "")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
If CreateGadgetList(WindowID(0))
StringGadget(0, 10, 10, 620, 30, "")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
If EventMenu() = 0 ;Return
If GetActiveGadget() = 0 ; Stringgadget
Debug "Im StringGadget Return gedrückt"
EndIf
EndIf
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

string
Danke für die schnelle Antwort.
Leider läuft das genannte Beispiel bei mir nicht (PB-Version 3.0). Der Compiler akzeptiert z.B. 'PB_ignore undnEvent_Menu nicht.
Gibt es eine einfache Möglichkeit, Daten über die Tastatur einzugeben, z.B. Zahlenwerte für Berechnungen ?
Input ist ja nur für Konsolenbetrieb vorgesehen, und das können einfache Basics auch.
Danke
Reich
Leider läuft das genannte Beispiel bei mir nicht (PB-Version 3.0). Der Compiler akzeptiert z.B. 'PB_ignore undnEvent_Menu nicht.
Gibt es eine einfache Möglichkeit, Daten über die Tastatur einzugeben, z.B. Zahlenwerte für Berechnungen ?
Input ist ja nur für Konsolenbetrieb vorgesehen, und das können einfache Basics auch.
Danke
Reich
Re: string
<OT>
> PB-Version 3.0
Schreib das bitte in Deine Signatur!
</OT>
Grüße ... Kiffi
> PB-Version 3.0
Schreib das bitte in Deine Signatur!
</OT>
Grüße ... Kiffi
a²+b²=mc²
Ich als 3.3 nutzer habe mal übersetzt

Code: Alles auswählen
If OpenWindow(0, 0, 0, 640, 480, #PB_Window_SystemMenu, "")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
If CreateGadgetList(WindowID(0))
StringGadget(0, 10, 10, 620, 30, "")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
If EventMenuID() = 0 ;Return
If EventGadgetID() = 0 ; Stringgadget
Debug "Im StringGadget Return gedrückt"
EndIf
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
EndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- 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
Aber leider verkehrtSTARGÅTE hat geschrieben:Ich als 3.3 nutzer habe mal übersetzt![]()

Reagiert jetzt immer, nicht nur im StringGadget.
Hier in PB3.94 Syntax, die sollte gehen, hoffe ich mal:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 640, 480, #PB_Window_SystemMenu, "")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
If CreateGadgetList(WindowID(0))
StringGadget(0, 10, 10, 620, 30, "")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
If EventMenuID() = 0 ;Return
If GetFocus_() = GadgetID(0) ; Stringgadget
Debug "Im StringGadget Return gedrückt"
EndIf
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

GetFocus_() = GadgetID(0) ist aber das gleich wie EventGadgetID() = 0 denn beide fragen ab welche Gadget gerade "aktiv" ist also benutz wird
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- 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
Nein, das aktuelle Ereignis ist ein Menü-Ereignis, kein Gadget-Ereignis.STARGÅTE hat geschrieben:GetFocus_() = GadgetID(0) ist aber das gleich wie EventGadgetID() = 0 denn beide fragen ab welche Gadget gerade "aktiv" ist also benutz wird
EventGadgetID() ist garnicht bestückt

Vielleicht einfach mal testen. Der Debugger reagiert bei Deinem Beispiel
immer, auch wenn das Fenster den Fokus hat, mein Beispiel nur wenn der
Fokus im StringGadget liegt. Das ist schon sehr wichtig.
Dafür kann ich aber keine Spiele proggen

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

OK dann aber so !
Code: Alles auswählen
If OpenWindow(0, 0, 0, 640, 480, #PB_Window_SystemMenu, "")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 1)
If CreateGadgetList(WindowID(0))
StringGadget(1, 10, 10, 620, 30, "")
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
If EventMenuID() = 1 And Gadget = 1 ;Return
Debug "Im StringGadget Return gedrückt"
EndIf
Case #PB_EventGadget
Gadget = EventGadgetID()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
EndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr