Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


Да там не совсем пробел, вначале тоже поставило в тупик. Короче поставил тысячным разделителем ",". Мне нужен был input-калькулятор, вто что вышло

Код: Выделить весь код
#include <String.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <array.au3>

$hGui = GUICreate("Form", 320, 40, 192, 185)
$Input = GUICtrlCreateInput("", 8, 8, 249, 21,BitOR($ES_RIGHT,$ES_AUTOHSCROLL))
$Ok_Button = GUICtrlCreateButton("Ok", 264, 7, 49, 23)
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1 
$msg = GUIGetMsg() 
Select 
Case $msg = $GUI_EVENT_CLOSE 
	Exit
Case $msg = $Ok_Button
	$z=GUICtrlRead($Input)
	GUICtrlSetData($input,Execute(StringReplace($z,",","")))
EndSelect 
WEnd

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg
Local $hWndFrom, $iIDFrom, $iCode
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
Switch $iIDFrom
	Case $Input
		Switch $iCode
			Case $EN_CHANGE
				$str=GUICtrlRead($Input)
				If StringRegExp($str, ".*\.\z") Then ContinueCase ; если введена десятичная точка, не обрабатывать через _StringAddThousandsSep, иначе он ее уберет
				$x=StringRegExp($str, "[0-9,.]+\z", 1)
				If @error=0 Then
					$str=StringReplace($str, $x[0], _StringAddThousandsSep(StringReplace($x[0],",",""),",","."))
					GUICtrlSetData($input, $str)
				EndIf
		EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Спасибо всем.

Последний раз редактировалось san45, 07-05-2009 в 00:58.


Отправлено: 07:43, 06-05-2009 | #10