Redline
AutoIT Гуру
- Сообщения
- 506
- Репутация
- 375
Есть GUI с input и slider. Хочется что бы они работали с данными Hex (утилита для работы с цветом ), получилось реализовать только передачу данных от slider в input, и то простым конвертированием, а вот как заставить input обрабатывать 16-тиричные числа ума не приложу :-\. Вот пример.
PS. И еще вопросик, как заставить slider реагировать на каждый символ, введенный в input? Т.е. я ввел первую цифру - ползунок slidera сдвинулся, ввел очередную цифру - еще сдвинулся.
Код:
#include <EditConstants.au3>
#include <SliderConstants.au3>
#include <UpdownConstants.au3>
#include <WindowsConstants.au3>
$hGUI = GUICreate("Hex slider", 200, 400)
GUIRegisterMsg($WM_VSCROLL, "WM_HVSCROLL")
$in = GUICtrlCreateInput("0", 20, 10, 48, 21)
GUICtrlSetLimit($in, 3)
$upd = GUICtrlCreateUpdown($in, $UDS_ARROWKEYS)
GUICtrlSetLimit($upd, 255, 0)
$sl = GUICtrlCreateSlider(20, 31, 48, 350, $TBS_BOTH+$TBS_VERT)
GUICtrlSetLimit($sl, 255)
$hSlider = GUICtrlGetHandle($sl)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $in
$count = GUICtrlRead($in)
If $count = "" Then
$count = 0
GUICtrlSetData($in, $count)
ElseIf $count > 255 Then
$count = 255
GUICtrlSetData($in, $count)
EndIf
GUICtrlSetData($sl, $count)
Case $sl
$count = GUICtrlRead($sl)
GUICtrlSetData($in, Hex($count, 2))
EndSwitch
WEnd
Func WM_HVSCROLL($hWndGUI, $MsgID, $WParam, $LParam)
Switch $LParam
Case $hSlider
$count = GUICtrlRead($sl)
GUICtrlSetData($in, Hex($count, 2))
EndSwitch
EndFunc
PS. И еще вопросик, как заставить slider реагировать на каждый символ, введенный в input? Т.е. я ввел первую цифру - ползунок slidera сдвинулся, ввел очередную цифру - еще сдвинулся.