|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Autoit слайдер/slider (gui) нужна помощь в решении задачи |
|
Autoit слайдер/slider (gui) нужна помощь в решении задачи
|
Новый участник Сообщения: 15 |
#include <GuiConstantsEx.au3>
#include <GuiSlider.au3> 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 небольшая погрешность есть помогите, натолкните на мысль к решению проблемы |
|
Отправлено: 23:03, 25-02-2010 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать aktivizion,
Здесь есть пример: Обновление элемента Slider в реальном времени |
Отправлено: 02:12, 26-02-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать #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 |
Последний раз редактировалось Yashied, 26-02-2010 в 10:41. Отправлено: 10:30, 26-02-2010 | #3 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Ну как бы обьяснить...
Вот есть число 1 его надо разбить на %-ы и с помощью самого слайдера редактирую именно тот % составляющий число 1, но он должен имень очень огромный формат, для этого я и хотел бы вместе с вами написать подобия калькулятора. 0,501393020153046 ~~51% 0,498607009649277 ~~49% или же 0,333332985639572 ~~34% 0,218854993581772 ~~22% 0,185185000300407 ~~18% 0,042087998241186 ~~4% и чтобы сумма этих чисел равнялось 1 Двигая слайдер изменяем % строки, вместе с этим изменяеться число Думаю вы считаете это какой-то странной затеей, но это мне действительно нужно если что, я буду пробовать сделать это самостоятельно |
Отправлено: 16:34, 26-02-2010 | #4 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Цитата aktivizion:
0,501393020153046 ~~50% 0,498607009649277 ~~50% это я так, к слову (элементарные правила округления). чтобы коварная ошибка не прокралась в код. |
||
------- Отправлено: 16:37, 26-02-2010 | #5 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата Yashied:
GUICtrlSetLimit(-1, 1000, 0) для более утонченного выбора % |
|
Отправлено: 16:37, 26-02-2010 | #6 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата kaster:
|
|
Отправлено: 18:59, 26-02-2010 | #7 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать ладно) закрывайте тему)
зато вспомнили как работает слайдер |
Отправлено: 15:14, 01-03-2010 | #8 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать aktivizion, просто отмечай тему решенной, если получил ответ на свой вопрос
![]() |
------- Отправлено: 18:05, 01-03-2010 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] нужна помощь в решении проги Паскаль(по методу Функции) | eXPertVL | Программирование и базы данных | 2 | 29-11-2009 22:48 | |
[AutoIt] нужна помощь | Oldschool | AutoIt | 1 | 13-09-2007 13:07 | |
Нужна помощь! | joyland | Вебмастеру | 2 | 01-11-2006 02:17 |
|