Oder muß ich da irre Abfragen konstruieren?
Nicht sehr irre. ![]()
Spoiler anzeigen
$hGui = GUICreate('Test')
$cInput = GUICtrlCreateInput('', 20, 20, 150, 20)
$hInput = GUICtrlGetHandle($cInput)
GUISetState()
GuiRegisterMsg($WM_COMMAND, 'WM_COMMAND')
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local $iIDFrom, $hWndEdit, $sRead, $iCode
$iIDFrom = BitAND($iwParam, 0xFFFF)
$iCode = BitShift($iwParam, 16)
$hWndEdit = GUICtrlGetHandle($iIDFrom)
If $hWndEdit = $hInput And $iCode = $EN_CHANGE Then
$sRead = GUICtrlRead($iIDFrom)
If Not StringRegExp($sRead, '^\d+,?(\d+)?$') Then
GUICtrlSetData($iIDFrom, StringLeft($sRead, StringLen($sRead)-1))
EndIf
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Edit:
Aber denk dran, dass man mit Komma in AutoIt nicht rechnen kann. Du kannst es in der Anzeige verwenden musst aber zum Rechnen in Punkt umwandeln. ![]()