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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Вопрос по функции GUICtrlRead [AvtoIt v3] (http://forum.oszone.net/showthread.php?t=194316)

LexaSF 18-12-2010 12:27 1568723

Вопрос по функции GUICtrlRead [AvtoIt v3]
 
GUICtrlRead Какое будет возвращаться значение у $Button в этой функции при нажатии на кнопку?При отстутсвии события оно посылает просто текст на кнопке.А какое будет при нажатии на нее?

Creat0R 18-12-2010 12:59 1568739

Предупреждение за нарушение правил форума, пункт 2.7 и пункт 3.19:

Цитата:

2.7: В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема)...
Подробнее о принципах создания тем читайте в этом документе и Правилах форумов.

3.19: Запрещается... Создавать темы, имеющие неинформативные или состоящие из заглавных букв заголовки (например, "Помогите!", "HELP!", "У меня проблема"). Такие темы будут закрыты или перенесены в Тест-форум. Если вы хотите вернуть перенесенную тему обратно, пока ее не закрыли в Тест-форуме, измените ее заголовок на осмысленный и напишите об этом в теме.
Переименуйте пожалуйста тему.

LexaSF 18-12-2010 13:06 1568745

как ее переименовывать?

Creat0R 18-12-2010 13:30 1568768

Цитата:

Цитата LexaSF
как ее переименовывать? »

В цитате есть ссылка указывающая на инструкцию.

Iska 18-12-2010 13:40 1568773

Creat0R, видать, всё равно не помогает :lol:.

LexaSF,

Coutty 18-12-2010 14:39 1568827

LexaSF, а почему что-то должно поменяться от нажатия на кнопку? Самый простой способ убедиться - вывести результат работы этой функции во всплывающем окне. Что-то вроде этого:
Код:

MsgBox(0,0, GuiCtrlRead($Button))
Если вы хотите отловить событие "нажатие на кнопку", то "улавливатель" надо ставить в функцию перерисовки окна:
Код:

While 1
  $msg = GUIGetMsg()
  Select
    Case $msg = $Button
      ; здесь ваш код по нажатию кнопки
    Case $msg = $GUI_EVENT_CLOSE
      ExitLoop
  EndSelect
WEnd


LexaSF 18-12-2010 16:08 1568878

Спасиб, получилось, но почему со Switch неработало? И при нажатии на кнопку сообщение вылазиет не всегда с 1 нажатия, как это можно исправить?

Creat0R 18-12-2010 16:44 1568897

Цитата:

Цитата LexaSF
почему со Switch неработало? »

Телепаты в отпуске, никто не знает как там у тебя было со Switch.

LexaSF 18-12-2010 17:28 1568915

Примерно так
$n = GUIGetmsg()
Switcg $n
Case $n = $Button
Msgbox(0,'','')
EndSwitch

Coutty 18-12-2010 17:38 1568921

Здесь сразу две ошибки.
1. Switch во второй строке неправильно написан.
2. Синтаксис не такой. Надо писать не Case $n = $Button, а просто Case $Button. Читайте справку)

LexaSF 18-12-2010 17:54 1568929

)но осталась 1 проблема - кнопки реагируют не сразу.Я нажимаю на 7них, они то с 1 раза выводят сообщение то с 3 как это исправить?

Coutty 18-12-2010 18:09 1568945

Телепатический ресурс исчерпан. Показывайте код (не забудьте использовать тэг [ code ] или [ php ], а то читать никто не будет).

LexaSF 18-12-2010 18:30 1568967

Код:

#include <GUIConstants.au3>    #Region ### START Koda GUI section ### Form=C:\Users\Lexa\AppData\Local\Temp\Rar$EX00.605\Forms\12.kxf  $Form1_1 = GUICreate("Settings", 340, 281, 374, 214)  GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")  GUISetFont(8, 800, 0, "Palatino Linotype")  GUISetBkColor(0xFFFBF0)  $Checkbox1 = GUICtrlCreateCheckbox("Выводить общюю статистику", 8, 56, 289, 25)  GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")  $Label1 = GUICtrlCreateLabel("                AvToB0T Settings", 0, 0, 339, 25)  GUICtrlSetFont(-1, 12, 800, 0, "FreeSetBlackCTT")  GUICtrlSetBkColor(-1, 0xA6CAF0)  $Label2 = GUICtrlCreateLabel("Кол-во попыток запуска при ошибке соеденения:", 8, 96, 324, 22)  GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")  $Input1 = GUICtrlCreateInput("Input1", 8, 128, 209, 24)  $Label3 = GUICtrlCreateLabel("Количество аккаунтов:", 8, 168, 191, 26)  GUICtrlSetFont(-1, 12, 800, 0, "Palatino Linotype")  $Input2 = GUICtrlCreateInput("Input2", 8, 200, 209, 24)  $Button2 = GUICtrlCreateButton("Сохранить", 8, 240, 97, 25, 0)  GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")  $Button1 = GUICtrlCreateButton("Выйти", 120, 240, 97, 25, 0)  GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")  $Label4 = GUICtrlCreateLabel("By ToSTeP", 272, 256, 52, 18)  GUICtrlSetFont(-1, 7, 800, 0, "Palatino Linotype")  GUISetState(@SW_SHOW)  #EndRegion ### END Koda GUI section ###    While 1  $nMsg = GUIGetMsg()  Switch $nMsg  Case $GUI_EVENT_CLOSE  Exit  EndSwitch  $msg = GUIGetMsg()    Select      Case $msg = $Button2        MsgBox(0,'','11111button')    Case $msg = $GUI_EVENT_CLOSE        ExitLoop    Case $msg = $Button1            MsgBox(0,'','22222button2')            Exit    EndSelect  WEnd
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=C:\Users\Lexa\AppData\Local\Temp\Rar$EX00.605\Forms\12.kxf
$Form1_1 = GUICreate("Settings", 340, 281, 374, 214)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetFont(8, 800, 0, "Palatino Linotype")
GUISetBkColor(0xFFFBF0)
$Checkbox1 = GUICtrlCreateCheckbox("Выводить общюю статистику", 8, 56, 289, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label1 = GUICtrlCreateLabel(" AvToB0T Settings", 0, 0, 339, 25)
GUICtrlSetFont(-1, 12, 800, 0, "FreeSetBlackCTT")
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Label2 = GUICtrlCreateLabel("Кол-во попыток запуска при ошибке соеденения:", 8, 96, 324, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input1 = GUICtrlCreateInput("Input1", 8, 128, 209, 24)
$Label3 = GUICtrlCreateLabel("Количество аккаунтов:", 8, 168, 191, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("Input2", 8, 200, 209, 24)
$Button2 = GUICtrlCreateButton("Сохранить", 8, 240, 97, 25, 0)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button1 = GUICtrlCreateButton("Выйти", 120, 240, 97, 25, 0)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label4 = GUICtrlCreateLabel("By ToSTeP", 272, 256, 52, 18)
GUICtrlSetFont(-1, 7, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$msg = GUIGetMsg()
Select
Case $msg = $Button2
MsgBox(0,'','11111button')
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button1
MsgBox(0,'','22222button2')
Exit
EndSelect
WEnd

madmasles 18-12-2010 18:45 1568976

LexaSF,
Код:

;...
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            MsgBox(0, '', '11111button')
        Case $Button2
            MsgBox(0, '', '22222button2')
            Exit
    EndSwitch
WEnd


LexaSF 18-12-2010 18:53 1568981

Блин, как мне так сделать?

madmasles 18-12-2010 19:18 1568999

Цитата:

Цитата LexaSF
Блин, как мне так сделать? »

Вы про Au3ToPost - Инструмент для расскраски AutoIt-кода?

LexaSF 18-12-2010 19:22 1569005

А, я думал это вы с помощью ББ сделали))Но все же почему реакция идет не сразу?

madmasles 18-12-2010 19:28 1569010

LexaSF,
У меня сразу.

LexaSF 18-12-2010 19:31 1569013

у меня железо не вроде самое глючное)Но идет не сразу.От чего может зависить это?

Creat0R 18-12-2010 21:34 1569124

Цитата:

Цитата LexaSF
идет не сразу.От чего может зависить это? »

От того что используется несколько GUIGetMsg, тебе показали как делать, а ты за своё. Читай справку, срочно!

LexaSF 18-12-2010 22:01 1569147

А эта функция возваращает состояние чебокса?

Creat0R 18-12-2010 22:15 1569157

Цитата:

Цитата LexaSF
эта функция возваращает состояние чебокса? »

А проверить не судьба? И в справке что написано?

LexaSF 18-12-2010 23:09 1569192

Код:

#include <GUIConstants.au3>
$icon = @ScriptDir & '\icon_Avtobot.ico'
$Form1_1 = GUICreate("Settings", 301, 234, 532, 397)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetFont(8, 800, 0, "Palatino Linotype")
GUISetBkColor(0xFFFBF0)
$Checkbox1 = GUICtrlCreateCheckbox("Выводить общюю статистику", 8, 160, 289, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label1 = GUICtrlCreateLabel("                AvToB0T Settings", 0, 0, 300, 25)
GUICtrlSetFont(-1, 12, 800, 0, "FreeSetBlackCTT")
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Label3 = GUICtrlCreateLabel("Количество аккаунтов:", 8, 40, 155, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("Input2", 8, 64, 209, 24)
$Button2 = GUICtrlCreateButton("Сохранить", 8, 192, 97, 25, 0)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button1 = GUICtrlCreateButton("Отмена", 120, 192, 97, 25, 0)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label4 = GUICtrlCreateLabel("By ToSTeP", 240, 208, 52, 18)
GUICtrlSetFont(-1, 7, 800, 0, "Palatino Linotype")
$Input3 = GUICtrlCreateInput("Input2", 8, 128, 209, 24)
$Label5 = GUICtrlCreateLabel("Путь к UDOBot.exe (только папка):", 8, 104, 229, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)

$Dir = @ScriptDir & '\AvToB0T.ini'
While 1
        $x = GUICtrlRead($Chebox1)
        If $x = $GUI_CHECKED Then $x = 1
        Else $x = 0
                EndIf
        $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
                        Exit
        Case $Button2
                        IniWrite($Dir,'Section','Statistic',$x)
            Exit
    EndSwitch
WEnd

помогите!У меня при нажатии на $button2 вылазиет MsgBox с тесктом, который был в другом скрипте, и реакция идет не сразу, + не закрывается!почему???

madmasles 18-12-2010 23:23 1569196

LexaSF,
Вы бы код тегами обрамляли.
Код:

;...
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE, $Button1
            Exit
        Case $Button2
            $x = GUICtrlRead($Checkbox1)
            If $x = $GUI_CHECKED Then
                $x = 1
            Else
                $x = 0
            EndIf
            IniWrite($Dir, 'Section', 'Statistic', $x)
            Exit
    EndSwitch
WEnd


LexaSF 18-12-2010 23:23 1569197

А, спс, понял


Время: 09:59.

Время: 09:59.
© OSzone.net 2001-