StringGadget mit #PB_String_Numeric lässt Text zu
-
- Beiträge: 167
- Registriert: 29.12.2005 09:58
- Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)
StringGadget mit #PB_String_Numeric lässt Text zu
Hab grad einen kleinen Bug beim StringGadget gefunden:
Wenn ich das Gadget mit #PB_String_Numeric definiere, dann kann ich zwar über die Tastatur nur Ziffern eingeben wie es sein sollte, aber über die Zwischenablage (Strg+V oder Rechtsklick "Einfügen") kann ich alle möglichen Zeichen reinkopieren.
Getestet mit PB 4.30 Windows XP 32 Bit
Wenn ich das Gadget mit #PB_String_Numeric definiere, dann kann ich zwar über die Tastatur nur Ziffern eingeben wie es sein sollte, aber über die Zwischenablage (Strg+V oder Rechtsklick "Einfügen") kann ich alle möglichen Zeichen reinkopieren.
Getestet mit PB 4.30 Windows XP 32 Bit
man kann in der Tat jedes beliebige Zeichen einfügen:
(Sorry für den kopierten Code)
Getestet mit PB4.3 (Vista - 32 Bit)
Ob das aber nun an PB direkt liegt ist die Frage...
Code: Alles auswählen
If OpenWindow(0, 0, 0, 230, 90, "Event-Handling Beispiel...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget (1, 10, 10, 200, 20, "Klick mich",#PB_String_Numeric)
CheckBoxGadget(2, 10, 40, 200, 20, "Markiere mich")
If CreateMenu(0, WindowID(0))
MenuTitle("Menu")
MenuItem(1, "Eintrag 1")
MenuItem(2, "Eintrag 2")
MenuItem(3, "Eintrag 3")
EndIf
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Debug "Schalter 1 angeklickt!"
Case 2 : Debug "Schalter 2 angeklickt!"
Case 3 : Debug "Schalter 3 angeklickt!"
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 1 : Debug "Menü-Eintrag 1 angeklickt!"
Case 2 : Debug "Menü-Eintrag 2 angeklickt!"
Case 3 : Debug "Menü-Eintrag 3 angeklickt!"
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Getestet mit PB4.3 (Vista - 32 Bit)
Ob das aber nun an PB direkt liegt ist die Frage...
Win11 x64 | PB 6.20
- 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
Ich würde sagen, das ist eine Einschränkung des OS. Unter Vista bekomme
ich keine ungültigen Zeichen über die Zwischenablage eingefügt, per Code
ist das natürlich möglich, wäre ja auch dumm, wenn nicht.
ich keine ungültigen Zeichen über die Zwischenablage eingefügt, per Code
ist das natürlich möglich, wäre ja auch dumm, wenn nicht.
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.

- 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
So sieht es aus! Unter Vista kommt ein Ballontip, der sagt unzulässigesRokur hat geschrieben:Dann verwendet PB hier ein Feature vom Betriebssystem, welches nicht überall gleich funktioniert?
Zeichen, XP weiß ich jetzt nicht mehr, die davor machen es in jedem Fall anders.
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.

- 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
Falls Interesse an einem WorkAround besteht:
Code: Alles auswählen
EnableExplicit
Global oldStringGadgetCB
Procedure StringGadgetCB(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_CHAR
Select wParam
Case 47 To 57 ; erlaubte Zeichen 0 - 9
Default
ProcedureReturn #False
EndSelect
Case #WM_CONTEXTMENU ; Kontextmenü unterdrücken
ProcedureReturn #False
EndSelect
ProcedureReturn CallWindowProc_(oldStringGadgetCB, hWnd, uMsg, wParam, lParam)
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 40, "test", #PB_Window_SystemMenu)
StringGadget(0, 10, 10, 180, 20, "")
SetActiveGadget(0)
oldStringGadgetCB = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @StringGadgetCB())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
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.

- 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
Dann ist Dein PC oder das OS kaputtAndesdaf hat geschrieben:@WorkAround:
mit STRG-EINFG kannste immernoch buchstaben einfügen
[Vista-32bit]

Dat geid man garnich
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.
