#include
#include
GUICreate("Slider Set Pos", 600, 296)
$hSlider = GUICtrlCreateSlider(2, 40, 400, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE))
GUISetState()
GuiCtrlCreateInput("0,0148149998858571", 2, 10, 130, 20)
GuiCtrlCreateInput("0.14%", 140, 10, 130, 20)
$hSlider = GUICtrlCreateSlider(2, 100, 400, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE))
GUISetState()
GuiCtrlCreateInput("0,0198147568858794", 2, 70, 130, 20)
GuiCtrlCreateInput("0.15%", 140, 70, 130, 20)
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
начальный, даже не начальный, а просто шаблон скрипта.
Мне нужно чтобы
при движении слайдера, число над ним, именно в том формате как оно есть изменялась,
тоесть создать маленький миханизм.
На примере показано только два значения, их нужно мне примерно 10
и чтобы все они были взаимосвязаны друг с другом, тоесть чтобы вся их сумма была равна 1
например:
0,501393020153046
и
0,498607009649277
в сумме дают 1.00000022 небольшая погрешность есть
помогите, натолкните на мысль к решению проблемы
Autoit слайдер/slider (gui) нужна помощь в решении задачи
-
Yashied
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
Код:
Что именно должно отображаться, я так и не понял.
Код: Выделить всё
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUISlider.au3>
#include <GUIToolTip.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
GUICreate('MyGUI', 300, 100)
$Input = GUICtrlCreateInput('0.50%', 20, 60, 40, 19, BitOR($ES_CENTER, $ES_READONLY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Slider = GUICtrlCreateSlider(20, 16, 260, 28, BitOR($TBS_AUTOTICKS, $TBS_TOOLTIPS, $WS_TABSTOP))
GUICtrlSetLimit(-1, 10, 0)
GUICtrlSetData(-1, 5)
$hSlider = GUICtrlGetHandle(-1)
$Dummy = GUICtrlCreateDummy()
$hWnd = _GUICtrlSlider_GetToolTips($hSlider)
_GUIToolTip_SetTitle($hWnd, '0.50%')
_GUIToolTip_SetMargin($hWnd, -8, -8, -8, -24)
GUIRegisterMsg($WM_HSCROLL, 'WM_HVSCROLL')
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Dummy
$Val = StringFormat('%.2f%', GUICtrlRead($Dummy) / 10)
GUICtrlSetData($Input, $Val)
_GUIToolTip_SetTitle($hWnd, $Val)
_GUIToolTip_Update($hWnd)
EndSwitch
WEnd
Func WM_HVSCROLL($hWnd, $iMsg, $wParam, $lParam)
Switch $iMsg
Case $WM_HSCROLL
Switch $lParam
Case $hSlider
GUICtrlSendToDummy($Dummy, GUICtrlRead($Slider))
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_HVSCROLLЧто именно должно отображаться, я так и не понял.
-
aktivizion
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
Ну как бы обьяснить...
Вот есть число 1
его надо разбить на %-ы
и с помощью самого слайдера редактирую именно тот % составляющий число 1, но
он должен имень очень огромный формат, для этого я и хотел бы вместе с вами написать
подобия калькулятора.
0,501393020153046 ~~51%
0,498607009649277 ~~49%
или же
0,333332985639572 ~~34%
0,218854993581772 ~~22%
0,185185000300407 ~~18%
0,042087998241186 ~~4%
и чтобы сумма этих чисел равнялось 1
Двигая слайдер изменяем % строки, вместе с этим изменяеться число
Думаю вы считаете это какой-то странной затеей, но это мне действительно нужно
если что, я буду пробовать сделать это самостоятельно
Вот есть число 1
его надо разбить на %-ы
и с помощью самого слайдера редактирую именно тот % составляющий число 1, но
он должен имень очень огромный формат, для этого я и хотел бы вместе с вами написать
подобия калькулятора.
0,501393020153046 ~~51%
0,498607009649277 ~~49%
или же
0,333332985639572 ~~34%
0,218854993581772 ~~22%
0,185185000300407 ~~18%
0,042087998241186 ~~4%
и чтобы сумма этих чисел равнялось 1
Двигая слайдер изменяем % строки, вместе с этим изменяеться число
Думаю вы считаете это какой-то странной затеей, но это мне действительно нужно
если что, я буду пробовать сделать это самостоятельно
-
kaster
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
Цитата aktivizion:
0,501393020153046 ~~51%
0,498607009649277 ~~49%
я бы сказал наоборот
0,501393020153046 ~~50%
0,498607009649277 ~~50%
это я так, к слову (элементарные правила округления). чтобы коварная ошибка не прокралась в код.
0,501393020153046 ~~51%
0,498607009649277 ~~49%
Autoit слайдер/slider (gui) нужна помощь в решении задачи
я бы сказал наоборот
0,501393020153046 ~~50%
0,498607009649277 ~~50%
это я так, к слову (элементарные правила округления). чтобы коварная ошибка не прокралась в код.
-
aktivizion
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
Цитата Yashied:
GUICtrlSetLimit(-1, 10, 0)
вот эту строчку немного подправил
GUICtrlSetLimit(-1, 1000, 0)
для более утонченного выбора %
GUICtrlSetLimit(-1, 10, 0)
Autoit слайдер/slider (gui) нужна помощь в решении задачи
вот эту строчку немного подправил
GUICtrlSetLimit(-1, 1000, 0)
для более утонченного выбора %
-
aktivizion
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
Цитата kaster:
элементарные правила округления
Я про это знал, просто надо было как-то выделить %-ое соотношение
элементарные правила округления
Autoit слайдер/slider (gui) нужна помощь в решении задачи
Я про это знал, просто надо было как-то выделить %-ое соотношение
-
aktivizion
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
ладно) закрывайте тему)
зато вспомнили как работает слайдер
зато вспомнили как работает слайдер
-
kaster
Re: Autoit слайдер/slider (gui) нужна помощь в решении задачи
aktivizion, просто отмечай тему решенной, если получил ответ на свой вопрос
закрывать ни к чему
закрывать ни к чему