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

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

Ответить
Настройки темы
[решено] Переключение в GUI - Checkbox

Аватара для TERMINAL

Ветеран


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

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


Добрый день !
Написал скриптик :
Цитата:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

Global $Perekluchenie=0, $Checkbox2, $Checkbox4
HotKeySet("z", "_Zamena")

$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$Tab1 = GUICtrlCreateTab(8, 8, 617, 433)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Checkbox1 = GUICtrlCreateCheckbox("TEST 1", 124, 72, 97, 17)

$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$Checkbox3 = GUICtrlCreateCheckbox("TEST 3", 24, 160, 97, 17)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
If $Perekluchenie=0 Then
MsgBox(0,"","TEST 1")
Else
MsgBox(0,"","TEST 2")
EndIf
EndSwitch
WEnd

Func _Zamena()
If $Perekluchenie=0 Then
GUICtrlDelete($Checkbox1)
$Checkbox1 = GUICtrlCreateCheckbox("TEST 2", 124, 72, 97, 17)
GUICtrlSetColor($Checkbox1, -1)
GUICtrlDelete($Checkbox3)
$Checkbox3 = GUICtrlCreateCheckbox("TEST 4", 24, 160, 97, 17)
GUICtrlSetColor($Checkbox3, -1)
$Perekluchenie=1
Else
GUICtrlDelete($Checkbox1)
$Checkbox1 = GUICtrlCreateCheckbox("TEST 1", 124, 72, 97, 17)
GUICtrlSetColor($Checkbox1, -1)
GUICtrlDelete($Checkbox3)
$Checkbox3 = GUICtrlCreateCheckbox("TEST 3", 24, 160, 97, 17)
GUICtrlSetColor($Checkbox3, -1)
$Perekluchenie=0
EndIf
EndFunc
Мне нужно при нажатии клавиши "z" чтобы менялся Checkbox-вроде бы как то сделал, но при изменении вылазит Checkbox и со второй закладки "$TabSheet2" и цвет фона Checkbox приобретается от цвета фона самого GUI.
Может кто-нибудь подскажет как это лучше организовать ?

-------
Автоматизация прежде всего....


Отправлено: 16:29, 17-01-2013

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата TERMINAL:
при изменении вылазит Checkbox и со второй закладки "$TabSheet2" »
Это не изменение, а пересоздание, а так как таб уже закрыт, элементы помещаются после него, т.е не относятся к определённому табу.
Нужно либо переключать табы, либо не пересоздавать элементы, а задавать им новое значение:

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

Global $Perekluchenie = 0

$Form1 = GUICreate("Form1", 633, 447, 192, 124)

$Tab1 = GUICtrlCreateTab(8, 8, 617, 433)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Checkbox1 = GUICtrlCreateCheckbox("TEST 1", 124, 72, 97, 17)

$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$Checkbox3 = GUICtrlCreateCheckbox("TEST 3", 24, 160, 97, 17)

GUICtrlCreateTabItem("")

$Dummy = GUICtrlCreateDummy()

Dim $aAccelKeys[1][2] = [["z", $Dummy]]
GUISetAccelerators($aAccelKeys, $Form1)

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            If $Perekluchenie = 0 Then
                MsgBox(0, "", "TEST 1")
            Else
                MsgBox(0, "", "TEST 2")
            EndIf
        Case $Dummy
            If $Perekluchenie = 0 Then
                GUICtrlSetData($Checkbox1, "TEST 2")
                GUICtrlSetData($Checkbox3, "TEST 4")
                $Perekluchenie = 1
            Else
                GUICtrlSetData($Checkbox1, "TEST 1")
                GUICtrlSetData($Checkbox3, "TEST 3")
                $Perekluchenie = 0
            EndIf
    EndSwitch
WEnd

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

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

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:18, 17-01-2013 | #2



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

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


Аватара для TERMINAL

Ветеран


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

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


Creat0R, Огромное спасибо !

-------
Автоматизация прежде всего....


Отправлено: 11:00, 18-01-2013 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - DataGridView с Checkbox LilLoco Программирование и базы данных 6 15-10-2010 01:21
Delphi - checkbox в dbgrid chikara Программирование и базы данных 1 16-08-2010 22:41
Delphi - Как отключить все Checkbox'ы на форме? R.M.L Программирование и базы данных 9 08-06-2009 00:59
CheckBox в Ячейке DBGrid Loki3D Программирование и базы данных 3 31-08-2005 22:54
Visual Basic + CheckBox Artya Программирование и базы данных 3 26-03-2003 13:23




 
Переход