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

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

FlatX007 30-08-2009 14:22 1207014

Заключить данные в многоразмерный массив и обработь в цикле ...
 
Вобщем мучился долго ... так и ни чего не получилось...

У меня в примере в массиве записываются индексы значков из dll Local $aImage[5] = [110, 131, 165, 168, 146]
Кнопок как видно из примера 4 штуки, как мне задать многомерный массив чтобы за один цикл для каждой из четырёх кнопок задать РАЗНЫЕ иконки?

Вроде понятно объяснил ... :search:

Код:

#include <GuiButton.au3>
#include <GuiImageList.au3>

$nForm = GUICreate("Form2", 333, 296, 242, 283)

    $hImageList = _GUIImageList_Create(32, 32, 5, 3, 6)
    Local $aImage[5] = [110, 131, 165, 168, 110] ; [Иконка наложения , при наведении , при нажатии , нет ,  иконка после нажатия на кнопку]

    For $i = 0 To UBound($aImage) - 1
        _GUIImageList_AddIcon($hImageList, @SystemDir & "\shell32.dll", $aImage[$i], True)
    Next

    $Button12 = GUICtrlCreateButton("", 20, 41, 75, 40)
    $Button13 = GUICtrlCreateButton("", 20, 89, 75, 40)
    $Button14 = GUICtrlCreateButton("", 20, 137, 75, 40)
    $Button15 = GUICtrlCreateButton("", 20, 185, 75, 40)

    _GUICtrlButton_SetImageList($Button12, $hImageList)
;~  _GUICtrlButton_SetImageList($Button13, $hImageList)
;~  _GUICtrlButton_SetImageList($Button14, $hImageList)
;~  _GUICtrlButton_SetImageList($Button15, $hImageList)


GUISetState(@SW_SHOW)

Do
Until
GUIGetMsg() = -3


SyDr 30-08-2009 14:40 1207026

Код:

#include <GuiButton.au3>
#include <GuiImageList.au3>

Dim $hImageList[5]
Dim $Button[4]

Dim $nForm = GUICreate("Form2", 333, 296, 242, 283)

For $i = 0 To UBound($hImageList) - 1
    $hImageList[$i] = _GUIImageList_Create(32, 32, 5, 3, 6)
Next

Local
$aImage[4][5] = [[110, 131, 165, 168, 110], [110, 131, 165, 168, 110], [110, 131, 165, 168, 110], [123, 123, 12, 43, 123]]

For $i = 0 To UBound($aImage, 1) - 1
    For $k = 0 To UBound($aImage, 2) - 1
        _GUIImageList_AddIcon($hImageList[$i], @SystemDir & "\shell32.dll", $aImage[$i][$k], True)
    Next
Next

For
$i = 0 To 3
    $Button[$i] = GUICtrlCreateButton("", 20, 41 + 47 * $i, 75, 40)
Next

For
$i = 0 To 3
    _GUICtrlButton_SetImageList($Button[$i], $hImageList[$i])
Next

GUISetState(@SW_SHOW)

Do
Until
GUIGetMsg() = -3



Вроде работает :)
А что сам не смог сделать? Не можешь разобраться с многомерными массивами?

FlatX007 30-08-2009 14:51 1207034

Цитата:

Цитата SyDr
Не можешь разобраться с многомерными массивами? »

Канешно немогу ... :( если бы мог то сам бы сделал.

FlatX007 30-08-2009 16:10 1207080

Цитата:

Цитата SyDr
SyDr »

А как теперь сделать чтобы нажав на кнопку ,что либо исполнилось ? :)
чёта у меня неполучаетса :happy:

SyDr 30-08-2009 16:20 1207089

$Button[0], $Button[1], $Button[2], $Button[3] вместо старых значений.

Прымер:
Код:

Do
        If GUIGetMsg() = $Button[3] Then Exit MsgBox(4096, "", "Привет от третьей кнопки")
Until GUIGetMsg() = -3



Время: 14:38.

Время: 14:38.
© OSzone.net 2001-