Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
[решено] Помогите правильно создать GUI окно с элементами

Аватара для Centrinar

Старожил


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

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


Изменения
Автор: Centrinar
Дата: 07-05-2010
Описание: опечатка
Я продолжаю изучение GUI и вот еще пара глупых вопросов. Создаю GUI со вкладками и чекбоксами вроде делаю все правильно но на первой вкладке чекбоксы не работают, а работают только на втрой. Где ошибка? И можно ли как то сократить скрипт т.е. составить более грамотно? СПАСИБО
PHP код: Выделить весь код

#include <GUIConstantsEx.au3>

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#requireadmin
#NoTrayIcon


Global $sProgs 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5' 
Global $sProgs2 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5' 

Global Const $aProgs StringSplit($sProgs'|')
Global Const 
$aProgs2 StringSplit($sProgs2'|')
Global 
$anCheckBoxes[$aProgs[0]+1]
Global 
$aCheckedIcons[$aProgs[0]+1]
Global 
$aUnCheckedIcons[$aProgs[0]+1]
Global 
$aCompleteIcons[$aProgs[0]+1]
Global 
$aInstalledIcons[$aProgs[0]+1]
Global 
$anCheckBoxes2[$aProgs2[0]+1]
Global 
$aCheckedIcons2[$aProgs2[0]+1]
Global 
$aUnCheckedIcons2[$aProgs2[0]+1]
Global 
$aCompleteIcons2[$aProgs2[0]+1]
Global 
$aInstalledIcons2[$aProgs2[0]+1]

GUICreate("My GUI Tab",600,550)  
GUISetBkColor(0xFFFFFF)
$nStart GUICtrlCreateButton("Выполнить"3051015030)
$tab=GUICtrlCreateTab (10,10580,480)
GUISetBkColor(0xFFFFFF)
$tab0=GUICtrlCreateTabitem ("tab0")
GUISetBkColor(0xFFFFFF)
$iTop 35
$iLeft 
15
For $i 1 To $aProgs[0]
    
$aCheckedIcons[$i] = "common\images\01.ico"
    
$aUnCheckedIcons[$i] = "common\images\01.ico"
    
$aInstalledIcons[$i] = "common\images\03.ico"
    
$aCompleteIcons[$i] = "common\images\02.ico"
    
$anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($aProgs[$i], '^.*='''), $iLeft$iTop, -115,  $aUnCheckedIcons[$i])
    
$iTop += 20
    
If $iTop 480 Then
        $iTop 
10
        $iLeft 
+= 170
    
EndIf
Next

$tab1
=GUICtrlCreateTabitem ("tab1")
GUISetBkColor(0xFFFFFF)
$iTop 35
$iLeft 
15
For $s 1 To $aProgs2[0]
    
$aCheckedIcons2[$s] = "common\images\01.ico"
    
$aUnCheckedIcons2[$s] = "common\images\01.ico"
    
$aInstalledIcons2[$s] = "common\images\03.ico"
    
$aCompleteIcons2[$s] = "common\images\02.ico"
    
$anCheckBoxes2[$s] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($aProgs2[$s], '^.*='''), $iLeft$iTop, -115,  $aUnCheckedIcons2[$s])
    
$iTop += 20
    
If $iTop 480 Then
        $iTop 
10
        $iLeft 
+= 170
    
EndIf
Next




GUICtrlCreateTabitem 
("")   

GUISetState ()

While 
1
    $nMsg 
GUIGetMsg()
       Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
         Case 
$nStart
            
For $i 1 To $aProgs[0]
            
$aCheckBox $anCheckBoxes[$i
               If 
GUICtrlRead($aCheckBox[1]) = 1 Then
                    $iChecked_Counter 
+= 1
                    GUICtrlSetImage
($aCheckBox[0], $aInstalledIcons[$i])
                    
$sProgName StringRegExpReplace($aProgs[$i], '^.*=''')
                    
$sProgExe StringRegExpReplace($aProgs[$i], '=.*$''')
                    
MsgBox(64$sProgName"zz"3)
                    
GUICtrlSetImage($aCheckBox[0], $aCompleteIcons[$i])
                    Else
                    
GUICtrlSetImage($aCheckBox[0], $aUnCheckedIcons[$i])
                EndIf
                     
Next
                
For $s 1 To $aProgs2[0]
               
$aCheckBox2 $anCheckBoxes2[$s]
               If 
GUICtrlRead($aCheckBox2[1]) = 1 Then
                    $sChecked_Counter 
+= 1
                    GUICtrlSetImage
($aCheckBox2[0], $aInstalledIcons2[$s])
                    
$sProgName2 StringRegExpReplace($aProgs2[$s], '^.*=''')
                    
$sProgExe2 StringRegExpReplace($aProgs2[$s], '=.*$''')
                    
MsgBox(64$sProgName2"zz"3)
                    
GUICtrlSetImage($aCheckBox2[0], $aCompleteIcons2[$s])
                    Else
                    
GUICtrlSetImage($aCheckBox2[0], $aUnCheckedIcons2[$s])
                EndIf
                
Next
            $iChecked_Counter 
0
            $sChecked_Counter 
0
                
EndSwitch
WEnd
    
Func _GUICtrlCreateCheckboxEx
($sText$iLeft$iTop$iWidth$iHeight$sIconFile=""$nIconIndex=0)
    
Local $aRetArr[2]

    
$aRetArr[0] = GUICtrlCreateIcon($sIconFile$nIconIndex$iLeft 17$iTop1616)
    
GUICtrlSetState(-1$GUI_DISABLE)

    
$aRetArr[1] = GUICtrlCreateCheckbox("       " $sText " "$iLeft$iTop$iWidth$iHeight)
    
GUICtrlSetBkColor($aRetArr[1], 0xFFFFFF)

    Return 
$aRetArr
EndFunc 


Отправлено: 15:52, 07-05-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Вложения
Тип файла: zip Progs.zip
(93.8 Kb, 67 просмотров)

Цитата Centrinar:
Вот пример, думаю увидешь проблемму »
Да, вижу. С табами проблем хватает На данный момент всё что могу предложить так это создание иконки слева от чекбокса (плюс добавил цвет табу, чтобы было соостветствие, а также оптимизировал код).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 20:39, 07-05-2010 | #11



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

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


Аватара для Centrinar

Старожил


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

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


так ещё лучше

Отправлено: 20:42, 07-05-2010 | #12


Аватара для Centrinar

Старожил


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

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


Creat0R может сразу подскажешь как добавляеться Scrollbar(про который я спрашивал пару тем назад), что бы при переполнении чекбоксов можно было в низ листать.

Отправлено: 22:19, 07-05-2010 | #13


Аватара для Creat0R

Must AutoIt


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

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


Цитата Centrinar:
как добавляеться Scrollbar »
[решено] Создать окно с полосой прокрутки

и более простой способ: Scrollbars Made Easy

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:27, 07-05-2010 | #14


Аватара для Centrinar

Старожил


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

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


Получилось: _GUIScrollbars_Generate($hGUI, "", 1000), но если делать в нутри вкладки то не работает _GUIScrollbars_Generate($hTab1, "", 1000).
Его можно какнить во внутрь вкладки засунуть

Отправлено: 00:47, 08-05-2010 | #15


Аватара для Creat0R

Must AutoIt


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

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


Вложения
Тип файла: zip Progs.zip
(98.2 Kb, 89 просмотров)

Цитата Centrinar:
если делать в нутри вкладки то не работает »
Мда..., придётся извращаться, прикрепил первую форму извращения

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 02:08, 08-05-2010 | #16


Аватара для Centrinar

Старожил


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

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


спс

Последний раз редактировалось Centrinar, 11-05-2010 в 23:05.


Отправлено: 17:13, 11-05-2010 | #17



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Создать дочернее окно IE Shampur AutoIt 9 20-08-2009 18:55
[решено] Создать окно WMP в GUI beve AutoIt 5 09-07-2009 15:52
[решено] Как прилепить некое окно GUI к координатам окна другой проги beve AutoIt 4 09-02-2009 13:41
Как правильно создать Ramdisk? iii1961 Материнские платы и память 5 31-08-2008 21:30
Как правильно создать локал админа? Ferum01 Microsoft Windows NT/2000/2003 4 02-09-2007 19:40




 
Переход