Seite 1 von 1
Eingabe über String
Verfasst: 02.11.2006 13:47
von Reich
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.
Verfasst: 02.11.2006 13:57
von ts-soft
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:
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
string
Verfasst: 03.11.2006 15:58
von Reich
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
Re: string
Verfasst: 03.11.2006 16:03
von Kiffi
<OT>
> PB-Version 3.0
Schreib das bitte in Deine Signatur!
</OT>
Grüße ... Kiffi
Verfasst: 03.11.2006 16:25
von STARGÅTE
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
Verfasst: 03.11.2006 16:43
von ts-soft
STARGÅTE hat geschrieben:Ich als 3.3 nutzer habe mal übersetzt
Aber leider verkehrt
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
Verfasst: 03.11.2006 20:19
von STARGÅTE
GetFocus_() = GadgetID(0) ist aber das gleich wie EventGadgetID() = 0 denn beide fragen ab welche Gadget gerade "aktiv" ist also benutz wird
Verfasst: 03.11.2006 20:25
von ts-soft
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
Nein, das aktuelle Ereignis ist ein Menü-Ereignis, kein Gadget-Ereignis.
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

Verfasst: 03.11.2006 22:32
von STARGÅTE
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