Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Картинки в окне, переключатель.

Ответить
Настройки темы
Картинки в окне, переключатель.

Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Изменения
Автор: semiono
Дата: 19-01-2011
Нужно зделать окно 300x500 пикселей примерно, на окне разместить ComboBox() и пару квадратиков bmp, хотя лучше png.
Вообщем чтоб квадратики менять местами, левый на правый итп. через ComboBox[здесь некое название]
Я предпологаю далее зделать большее число квадратов на окне, заранее говорю чтоб было можно программу усложнить.
Ну вроде шахматных фигур нечто такое...
А конкретно это справочник гитарных аккордов будет... шесть на восемь картинок...
Мне только заготовка нужна для начала.

А вот картинки потом я надеюсь можно вкампилировать в exe? Хотелось бы одним файлом это зделать.

Из хелпа не ясно лишь как привязать "смену событий" к GUICtrlCreateCombo
Как мне через GUICtrlSetData() менять картинки (X Y)

Вот пока контрол нарисовал только...

Код: Выделить весь код
#include <GUIConstantsEx.au3>

GUICreate('Chords',200,300)

GUICtrlCreateCombo('item1',10,10,180)
GUICtrlSetData(-1,'item2|item3','item3')

GUISetState()

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Как мне получить результат нажатия GUICtrlSetData ?

-------
Полезное сообщение


Отправлено: 19:01, 19-01-2011

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата semiono:
не ясно лишь как привязать "смену событий" к GUICtrlCreateCombo »
Код: Выделить весь код
#include <GUIConstantsEx.au3>

$sDefault = 'item2'
$hGui = GUICreate('Chords', 200, 300)
$hCombo = GUICtrlCreateCombo('', 10, 30, 180)
GUICtrlSetData(-1, 'item1|item2|item3|item4|item5|item6', $sDefault)
$hLabel = GUICtrlCreateLabel($sDefault, 10, 5, 180)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $hCombo
            GUICtrlSetData($hLabel, GUICtrlRead($hCombo))
    EndSwitch
WEnd
Цитата semiono:
хотя лучше png »
По поводу картинок: Поддержка иконок и изображений, содержащих прозрачность (Alpha канал). Смотрите пример № 6.

Чтобы картинки записать в ресурсы exe-шника: FAQ по использованию ресурсов в AutoIt

Последний раз редактировалось madmasles, 19-01-2011 в 20:21.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:08, 19-01-2011 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


madmasles, может сразу напишешь пример, два квадрата BMP и местами (x, y) их поменять (GUICtrlSetData item1 item2)
ато я While/If/Than буду долго думать, я логически плохо умею мыслить. )

-------
Полезное сообщение


Отправлено: 20:29, 19-01-2011 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


semiono,
Попробуйте так:
читать дальше »
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <Icons.au3>
#include <StaticConstants.au3>

Global Const $sRed = @ScriptDir & '\red.png'
Global Const $sGreen = @ScriptDir & '\green.png'
Global Const $sBlue = @ScriptDir & '\blue.png'
Global Const $sYellow = @ScriptDir & '\yellow.png'
$sDefault = 'Красный'

$hRed = _Icons_Bitmap_Load($sRed)
$hGreen = _Icons_Bitmap_Load($sGreen)
$hBlue = _Icons_Bitmap_Load($sBlue)
$hYellow = _Icons_Bitmap_Load($sYellow)


$hGui = GUICreate('Chords', 300, 340)
$hCombo = GUICtrlCreateCombo('', 10, 30, 280)
GUICtrlSetData(-1, 'Синий|Зеленый|Красный|Желтый', $sDefault)
$hLabel = GUICtrlCreateLabel('По умолчанию: ' & $sDefault, 10, 5, 280, 16, $SS_CENTER)
$hPic = GUICtrlCreatePic('', 22, 70, 256, 256)
_SetHImage($hPic, $hRed)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $hCombo
            $sFromCombo = GUICtrlRead($hCombo)
            GUICtrlSetData($hLabel, 'Вы выбрали: ' & $sFromCombo)
            Switch $sFromCombo
                Case 'Красный'
                    _SetHImage($hPic, $hRed)
                Case 'Зеленый'
                    _SetHImage($hPic, $hGreen)
                Case 'Синий'
                    _SetHImage($hPic, $hBlue)
                Case 'Желтый'
                    _SetHImage($hPic, $hYellow)
            EndSwitch
    EndSwitch
WEnd

Ссылка на библиотеку Icons.au3 в моем предыдущем посту. Не забудьте про нее. Картинки в прикрепленном архиве.

Последний раз редактировалось madmasles, 13-08-2011 в 14:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:22, 19-01-2011 | #4


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Красиво!
---
Чтоб я вообще сам не думал, а где подправить, чтоб две картинки были одновременно рядом?



или вот ещё пример:



Впрочем попробую самостоятельно испортить Ваш код... ))

-------
Полезное сообщение


Последний раз редактировалось semiono, 19-01-2011 в 22:16.


Отправлено: 21:53, 19-01-2011 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата semiono:
чтоб две картинки были одновременно рядом »
Вот Вам пример с 4-мя картинками рядом:
читать дальше »
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <Icons.au3>

Dim $aPic[10] = [@ScriptDir & '\0.png', @ScriptDir & '\1.png', @ScriptDir & '\2.png', _
        @ScriptDir & '\3.png', @ScriptDir & '\4.png', @ScriptDir & '\5.png', _
        @ScriptDir & '\6.png', @ScriptDir & '\7.png', @ScriptDir & '\8.png', _
        @ScriptDir & '\9.png']
Dim $aPicControl[5] = [4]


$hGui = GUICreate('Счетчик', 250, 250, -1, -1)
$hInput = GUICtrlCreateInput('', 100, 10, 50, 18, BitOR($ES_NUMBER, $ES_CENTER, $ES_READONLY))
GUICtrlSetLimit(-1, 4)
For $i = 1 To $aPicControl[0]
    $aPicControl[$i] = GUICtrlCreatePic('', 77 + ($i - 1) * 24, 50, 24, 28)
    GUICtrlSetState(-1, $GUI_DISABLE)
    _SetImage($aPicControl[$i], $aPic[0])
Next
$hButton = GUICtrlCreateButton('Вперед', 100, 150, 50, 22)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $hButton
            GUICtrlSetState($hButton, $GUI_DISABLE)
            GUICtrlSetData($hInput, Random(1000, 9999, 1))
            _Set_Number(GUICtrlRead($hInput))
            GUICtrlSetState($hButton, $GUI_ENABLE)
    EndSwitch
WEnd

Func _Set_Number($n)
    Local $aNumber
    For $i = 1 To 4
        _SetImage($aPicControl[$i], $aPic[0])
    Next
    Sleep(100)
    $n = StringFormat('%04d', $n)
    $aNumber = StringSplit($n, '')
    For $i = 1 To $aPicControl[0]
        For $j = 0 To $aNumber[$i]
            _SetImage($aPicControl[$i], $aPic[$j])
            Sleep(150)
        Next
    Next
EndFunc   ;==>_Set_Number

Последний раз редактировалось madmasles, 13-08-2011 в 14:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:47, 19-01-2011 | #6


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Я уже сам немного продвинулся в этом ))
Код: Выделить весь код
$hPic1 = GUICtrlCreatePic('', 22, 70, 256, 256)
$hPic2 = GUICtrlCreatePic('', 220, 70, 256, 256)
_SetHImage($hPic1, $hRed)
_SetHImage($hPic2, $hGreen)
...
                Case '1'
                    _SetHImage($hPic1, $hRed)
                    _SetHImage($hPic2, $hGreen)
                Case '2'
                    _SetHImage($hPic1, $hGreen)
                    _SetHImage($hPic2, $hRed)
                Case '3'
                    _SetHImage($hPic1, $hBlue)
                    _SetHImage($hPic2, $hYellow)
                Case '4'
                    _SetHImage($hPic1, $hYellow)
                    _SetHImage($hPic2, $hRed)
Когда у меня будет таблица 6x8 картинок, я уже представил как там запутаться можно! )))

madmasles, однако Вы усложняете! Пример замечательный, хотя мне в нём всё менее понятно стало )))
Только казалось я был близок к пониманию.

-------
Полезное сообщение


Отправлено: 23:18, 19-01-2011 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Картинки в окне, переключатель.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - Нужна программа, что бы заливать картинки в чаты, а не ссылки на картинки Clever fellow Программное обеспечение Windows 2 18-02-2010 17:22
переключатель. джампер,на 4870x2 volganin Видеокарты 0 02-06-2009 06:01
Загрузка - [решено] В окне приветствия при входе нет картинки,есть пустая рамка интерактивный Microsoft Windows Vista 11 15-03-2009 19:22
Разное - Переключатель с DVI Kent777 Прочее железо 4 17-03-2008 10:15
Java скрипт увеличение картинки в новом окне Guest Вебмастеру 3 24-10-2004 11:30




 
Переход