Войти

Показать полную графическую версию : [решено] Заключить данные в многоразмерный массив и обработь в цикле ...


FlatX007
30-08-2009, 14:22
Вобщем мучился долго ... так и ни чего не получилось...

У меня в примере в массиве записываются индексы значков из 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
#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
Не можешь разобраться с многомерными массивами? »

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

FlatX007
30-08-2009, 16:10
SyDr »

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

SyDr
30-08-2009, 16:20
$Button[0], $Button[1], $Button[2], $Button[3] вместо старых значений.

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




© OSzone.net 2001-2012