Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как сделать скролбар применительно к части GUI-формы? (http://forum.oszone.net/showthread.php?t=155210)

evg64 31-10-2009 16:40 1257546

Как сделать скролбар применительно к части GUI-формы?
 
Вложений: 1
Добрый день! Во вложенном файле имеется скрин участка GUI-формы. Там 5 интервалов для диапазонов (каждый диапазон состоит из 2-х инпутов и лэйбла). Возможно, понадобится сделать более 5 таких интервалов - в этом случае они не будут помещаться в форму, если последнюю не увеличивать.
Что требуется: выделить этот участок формы в отдельный объект (предположительно через GUICtrlCreateObj) и добавить туда вертикальный скролбар.
Вопросы:
1) Лучшее ли это решение использовать GUICtrlCreateObj? Может быть, есть более рациональные способы добавить скролбар к участку GUI-формы?
2) Что писать аргументом к ObjCreate(), дабы создать форму? :unsure:

Привожу часть кода, отвечающую непосредственно за построение инпутов, изображенных во вложенном файле:

читать дальше »
Код:

; объявляем всякие переменные
$KolDiapasons=5 ; переменная, отвечающая за кол-во диапазонов
Global $iInputX=56, $iInputY=55, $GuiWidth=396, $GuiHeight=328
Dim $Input[2*$KolDiapasons][2],$Label[2*$KolDiapasons][2]
$GuiX=(@DesktopWidth - 396) / 2
$GuiY=(@DesktopHeight - 328-100) / 2

$Form2 = GUICreate("123", $GuiWidth, $GuiHeight, $GuiX, $GuiY ) ; создаем форму
GUICtrlCreateGroup("Диапазоны",$iInputX-21,$iInputY-45,100,40*$KolDiapasons+35) ; и группу

for $iInputCreate=0 to Ubound($Input)-1 step 2 ; строим инпуты циклом
$Input[$iInputCreate][0] = GUICtrlCreateInput($Input[$iInputCreate][1], $iInputX, $iInputY+40*int($iInputCreate/2), 25, 20)
$Input[$iInputCreate+1][0] = GUICtrlCreateInput($Input[$iInputCreate+1][1], $iInputX+40, $iInputY+40*int($iInputCreate/2), 25, 20)
$Label[int($iInputCreate/2)][0]=GUICtrlCreateLabel(" :", 84, $iInputY+40*int($iInputCreate/2)+2, 12, 24)
$Label[int($iInputCreate/2)][1]=GUICtrlCreateLabel(int($iInputCreate/2)+1&". ", $iInputX-15, $iInputY+40*int($iInputCreate/2)+2, 12, 24)
next

GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
wend


Creat0R 31-10-2009 17:34 1257594

А поиском уже не нужо пользоваться?
[решено] Создать окно с полосой прокрутки
[решено] [GUI] прокрутка формы

evg64 01-11-2009 12:24 1258157

Спс, в UDF скорее всего найдется подходящая функция.


Время: 04:47.

Время: 04:47.
© OSzone.net 2001-