Что нового

[Элементы GUI] Слайдер шаговый.

shura_luka

Новичок
Сообщения
3
Репутация
0
Подскажите как можно сделать слайдер с определённым шагом перемещения ползунка и возможноли такое в принципе.
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include <Html.au3>
If(Not _Html_Startup('D:\ботва\autoit\htmlayout.dll')) Then Exit 7
$str='<html>'&@crlf&'<head>'&@crlf&'<style>'&@crlf&''&@crlf&'div.selector'&@crlf&'{'&@crlf&'flow:horizontal;'& _
@crlf&'height:300px;'&@crlf&'}'&@crlf&'widget#switch'&@crlf&'{'&@crlf&'height:100px; '&@crlf&'margin:*;'&@crlf& _
'assigned! : '&@crlf&'self.value-changed(); /* call when-value-changed event handler as a function */ '&@crlf& _
'value-changed! : '&@crlf&'$1(ul.bound>li[shown]).shown = null,'&@crlf& _
'$1(ul.bound>li:nth-child(<self:value>)).shown = true,'&@crlf&'$1(code#switch-value):value = self:value;'&@crlf& _
'}'&@crlf&'ul.bound > li { display:none }'&@crlf&'ul.bound > li[shown] { display:block; }'&@crlf& _
'caption { text-align:center; }'&@crlf&'</style>'&@crlf&'<head>'&@crlf&'<body>'&@crlf&'<div class="selector">'& _
@crlf&'<div style="width:100px"> '&@crlf&'<widget id="switch" type="vslider" min=1 max=4 />'&@crlf& _
'<caption>value is <code id="switch-value" /></caption>'&@crlf&'</div>'&@crlf&'<ul class="bound">'&@crlf& _
'<li shown="true">'&@crlf&'<h3>Praesent fermentum.</h3>'&@crlf& _
'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. '&@crlf& _
'Maecenas vulputate malesuada erat. Nulla quam quam, porttitor nec, suscipit at, interdum in, pede. '&@crlf&'</li> '& _
@crlf&'<li>'&@crlf&'<h3>Ut imperdiet lacinia ligula.</h3>'&@crlf& _
'Vestibulum dui enim, porta sed, suscipit sed, eleifend vitae, tortor. '&@crlf& _
'Aenean dolor. Morbi mi turpis, suscipit ac, feugiat ac, tincidunt ut, leo. '&@crlf&'</li> '&@crlf&'<li #test>'&@crlf& _
'<h3>Ut imperdiet lacinia ligula.</h3>'&@crlf&'Ut tellus sem, tristique ac, consequat vitae, condimentum et, urna. '& _
@crlf&'Mauris egestas eros ac tellus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos'& _
'himenaeos. '&@crlf&'Integer fringilla mi. Quisque vel eros. Morbi mi turpis, consectetuer nec, dictum lobortis, '& _
'facilisis sit amet, libero. '&@crlf&'Praesent fermentum, dolor vel porttitor venenatis, dui lacus dignissim mauris, '& _
'et lobortis nibh tortor et pede.'&@crlf&'</li> '&@crlf&'<li>'&@crlf&'<h3>Vivamus auctor.</h3> '&@crlf& _
'Ut porttitor bibendum diam. Sed nibh risus, accumsan cursus, luctus ut, scelerisque vitae, libero. '&@crlf& _
'Nunc ac metus eu nibh consectetuer lacinia. '&@crlf&'Vestibulum malesuada ipsum a mi. '&@crlf& _
'Phasellus aliquet nulla a nunc. Curabitur commodo felis nec arcu. Duis eu pede ut quam adipiscing mattis. '&@crlf& _
'Cras est orci, iaculis in, fermentum nec, mollis a, felis. Proin elementum adipiscing diam. Sed luctus nunc in elit.'& _
@crlf&'</li>'&@crlf&'</ul>'&@crlf&'</div>'&@crlf&'</body>'&@crlf&'</html>'
$hForm = GUICreate('', 900, 650, -1, -1)
$hHtml = _Html_CreateWindow($hForm)
_Html_LoadHtml($hHtml,$str)
GUISetState(@SW_SHOW, $hForm)
Do
Until GUIGetMsg() = -3

<a href="http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=293" />html.rar</a>
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
shura_luka [?]
слайдер с определённым шагом
Ползунок слайдера перемещается на единицу. Задавайте шаг, какой вам надо, и умножайте
Код:
GUICreate("Slider", 400, 100)
$sl = GUICtrlCreateSlider(10, 10, 380, 30)
GUICtrlSetLimit(-1, 10, 0)
$btn = GUICtrlCreateButton("Показать значение", 10, 50, 380, 30)
GUISetState()

Global $step = 10

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $btn
      $val = GUICtrlRead($sl)
      MsgBox(0, "", "Ползунок : " & $val & @CRLF & "Значение : " & $val * $step)
  EndSwitch
Until 0
 
Автор
S

shura_luka

Новичок
Сообщения
3
Репутация
0
sngr Ваш код на все 300% неприемлем по простой причине он слишком велик. Зачем ехать из Питера в Москву через Ньюйорк.

InnI Огромное спасибо то что надо. Сейчас сам сижу и думаю почему не догадался до такого простого решения.
 
Верх