StringGadget VS #PB_String_Numeric
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
StringGadget VS #PB_String_Numeric
Was bedeutet eigentlich numerisch, nur Ganzzahlen oder auch reale Zahlen, also
auch positive, negative und Fließkommazahlen.
Es ist nach wie vor ärgerlich, das man in ein StringGadget mit dem gesetzten Flag
#PB_String_Numeric KEINE solchen Werte eingeben kann.
@André
wenn du die Hilfe vielleicht daraufhin anpassen könntest? Es sollte schon da stehen
das es nur Ganzzahlen sind und keine Fließkommazahlen.
Gruß Jens
auch positive, negative und Fließkommazahlen.
Es ist nach wie vor ärgerlich, das man in ein StringGadget mit dem gesetzten Flag
#PB_String_Numeric KEINE solchen Werte eingeben kann.
@André
wenn du die Hilfe vielleicht daraufhin anpassen könntest? Es sollte schon da stehen
das es nur Ganzzahlen sind und keine Fließkommazahlen.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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
>> Es sollte schon da stehen das es nur Ganzzahlen sind und keine Fließkommazahlen.
Nur positive Ganzzahlen!
Nur positive Ganzzahlen!
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.

- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
das kann für PB schon sein, aber es gibt eigentlich eine andere Erläuterung
dazu:
in der MS-SDK steht folgendes:
Numeric Literal Syntax
The following syntax is used for numeric literals in ODBC:
numeric-literal ::= signed-numeric-literal | unsigned-numeric-literal
signed-numeric-literal ::= [sign] unsigned-numeric-literal
unsigned-numeric-literal ::= exact-numeric-literal |
approximate-numeric-literal
exact-numeric-literal ::= unsigned-integer [period[unsigned-integer]] |
period unsigned-integer
sign ::= plus-sign | minus-sign
approximate-numeric-literal ::= mantissa E exponent
mantissa ::= exact-numeric-literal
exponent ::= signed-integer
signed-integer ::= [sign] unsigned-integer
unsigned-integer ::= digit...
plus-sign ::= +
minus-sign ::= -
digit ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0
period ::= .
© 1998-2004 Microsoft Corporation. All rights reserved.
Gruß Jens
das kann für PB schon sein, aber es gibt eigentlich eine andere Erläuterung
dazu:
in der MS-SDK steht folgendes:
Numeric Literal Syntax
The following syntax is used for numeric literals in ODBC:
numeric-literal ::= signed-numeric-literal | unsigned-numeric-literal
signed-numeric-literal ::= [sign] unsigned-numeric-literal
unsigned-numeric-literal ::= exact-numeric-literal |
approximate-numeric-literal
exact-numeric-literal ::= unsigned-integer [period[unsigned-integer]] |
period unsigned-integer
sign ::= plus-sign | minus-sign
approximate-numeric-literal ::= mantissa E exponent
mantissa ::= exact-numeric-literal
exponent ::= signed-integer
signed-integer ::= [sign] unsigned-integer
unsigned-integer ::= digit...
plus-sign ::= +
minus-sign ::= -
digit ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0
period ::= .
© 1998-2004 Microsoft Corporation. All rights reserved.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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
Bloß das das Ganze mit ODBC nichts zu tun hat, für Controls hat Billy es
anders implementiert (Ich nehme mal an, das es ein natives Feature ist, bin
aber zu Faul da nachzuforschen)
anders implementiert (Ich nehme mal an, das es ein natives Feature ist, bin
aber zu Faul da nachzuforschen)
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.

- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
das mag ja richtig sein, FALSCH ist jedoch, die anderen Zahlentypen von vornherein einfach
unter den Tisch zu kehren und dies nicht einmal zu kommentieren.
Außerdem sollte das nur der Verdeutlichung dienen, was denn NUMERISCH ist.
Gruß Jens
das mag ja richtig sein, FALSCH ist jedoch, die anderen Zahlentypen von vornherein einfach
unter den Tisch zu kehren und dies nicht einmal zu kommentieren.
Außerdem sollte das nur der Verdeutlichung dienen, was denn NUMERISCH ist.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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 stimme Dir ja zu, aber:
Wikipedia hat geschrieben:Eine Nummer (Adj.: numerisch) ist die eine Ganzzahl, die vor allem zur Kennzeichnung von - meist geordneten - Objekten verwandt wird.
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.

- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
klar, numerisch heíßt auch ordnen, soweit so gut.
@hallodri,
Flag setzten, und gut, davon redet ja gar keiner. Nur der Aufwand der
dafür notwendig ist, ist doch schon was mehr. Solange man nur
Spielstände in so einem Ding anzeigen oder ändern will, ist ja positive
Ganzzahl in Ordnung.
Nur für andere Zwecke muß man u.u. mehr haben und das geht nur mit
einem nicht gesetztem Flag, nur sind dann auch alle anderen Zeichen
erlaubt. Und das ist oft sehr störend.
Gruß Jens
klar, numerisch heíßt auch ordnen, soweit so gut.
@hallodri,
Flag setzten, und gut, davon redet ja gar keiner. Nur der Aufwand der
dafür notwendig ist, ist doch schon was mehr. Solange man nur
Spielstände in so einem Ding anzeigen oder ändern will, ist ja positive
Ganzzahl in Ordnung.
Nur für andere Zwecke muß man u.u. mehr haben und das geht nur mit
einem nicht gesetztem Flag, nur sind dann auch alle anderen Zeichen
erlaubt. Und das ist oft sehr störend.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
Code: Alles auswählen
EnableExplicit
Procedure SetCallbackEx(hWnd.l,Proc.l)
Protected OldProc = SetWindowLong_(hWnd,#GWL_WNDPROC,Proc)
If OldProc
SetWindowLong_(hWnd,#GWL_USERDATA,OldProc)
EndIf
ProcedureReturn OldProc
EndProcedure
Procedure callback(hWnd,Msg,wParam,lParam)
Protected OldProc = GetWindowLong_(hWnd,#GWL_USERDATA)
Protected len.l , input.s
Protected Buffer.s = Space(128)
if #WM_KEYUP = Msg
If wParam = #VK_DECIMAL Or wParam = $BC
len = SendMessage_(hwnd,#WM_GETTEXT,30,@Buffer)
If FindString(Buffer,".",0) = 0
If len = 0 or Buffer = "-"
input = "0."
Else
input = "."
EndIf
SendMessage_(hwnd,#EM_REPLACESEL,0,@input)
EndIf
endif
If wParam = #VK_SUBTRACT Or wParam = $BD
len = SendMessage_(hwnd,#WM_GETTEXT,128,@Buffer)
if left(Buffer,1) <> "-"
input = "-"
SendMessage_(hwnd,#EM_SETSEL,0,0)
SendMessage_(hwnd,#EM_REPLACESEL,0,@input)
SendMessage_(hwnd,#EM_SETSEL,len+1,len+1)
endif
endif
endif
ProcedureReturn CallWindowProc_(oldPROC,hWnd,Msg,wParam,lParam)
EndProcedure
Define WindowTitle.s = "Test"
Define CX.l = 120
Define CY.l = 50
Define *hString.long
Define *hWindow.long
Define WindowEvent.l
*hWindow = OpenWindow(#PB_Any,#PB_Ignore,#PB_Ignore,CX,CY,WindowTitle)
CreateGadgetList(*hWindow\l)
*hString = StringGadget(#pb_any,10,10,100,20,"0",#PB_String_Numeric|#PB_Text_Right)
SetCallbackEx(*hString\l,@callback())
Repeat
WindowEvent = WaitWindowEvent()
if WindowEvent = #PB_Event_Gadget
if EventGadget() = *hString
define result.s = GetGadgetText(*hString)
if FindString(result,".",1)
debug vald(result)
else
debug val(result)
endif
endif
endif
Until WindowEvent = #WM_CLOSE
- 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
@hallodri
Und wie schaltet man jetzt den Ballontip, welcher bei aktivierem XP-Style
kommt, ab
Ansonsten funktioniert es ja!
Und wie schaltet man jetzt den Ballontip, welcher bei aktivierem XP-Style
kommt, ab

Ansonsten funktioniert es ja!
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.
