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

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
оказалось, что RegExp-аналог оригинальной функции _PathSplit() занимает всего одну строчку...
Оригинально, прадва расширение не возвращается...
Но вообще то, я делал функцию _PathSplitByRegExp() не как аналог функции _PathSplit(), а как что то более юзабельное и функциональнее, можно сказать что это как бы “мод” той функции .


gregaz
Цитата:
А разве нельзя в этом же GUI вот так(тот же пример)
Можно, но лучше отдельно построить ГУИ для вывода информации, и поместить его в функцию, чтобы при каждом вызове небыло необходимости строить занового гуи:

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

$Gui = GUICreate("Demo GUI", 400, 300)

$Button1 = GUICtrlCreateButton("Button1", 100, 260, 70)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1 ;нажата кнопка "Button1"
            $Ret = _GuiMsgBox($WS_EX_TOPMOST, 2, "Info", "Текст 1" & @LF & "Текст 2", 330, 120, _
                "Больше не показывать", "OK", "Отмена", $Gui)
            MsgBox(0, "", "Вернувшееся значение: " & $Ret)
    EndSwitch
WEnd

;Функция для показа самодельного окна MsgBox
Func _GuiMsgBox($Type, $ButtonsNumber, $Title, $Text, $Left, $Top, $CheckBoxText, $FirstButtonText="OK", $SecondButtonText="Cancel", $hWnd=0)
    Local $Yes, $No, $OK, $CheckBox=-1, $Gui, $Msg, $ReturnVal = 0

        If $hWnd <> 0 Then WinSetState($hWnd, "", @SW_DISABLE)

        $Gui = GuiCreate($Title, $Left, $Top, -1, -1, -1, $Type, $hWnd)

    GUICtrlCreateLabel($Text, ($Left-($Left-($Left/2/2)))/2, (($Top/2)/2)-10, $Left-($Left/2/2), 40, $SS_CENTER)

    Select
        Case $ButtonsNumber = 2
            $Yes = GUICtrlCreateButton($FirstButtonText, ($Left/2)-90, ($Top/2), 70, 20)
            $No = GUICtrlCreateButton($SecondButtonText, ($Left/2)+20, ($Top/2), 70, 20)
        Case $ButtonsNumber > 2 Or $ButtonsNumber <= 1
            $OK = GUICtrlCreateButton($FirstButtonText, ($Left-70)/2, $Top/2, 70, 20)
    EndSelect

    If $CheckBoxText <> "" Then $CheckBox = GUICtrlCreateCheckbox($CheckBoxText, 15, $Top-30)
    GuiSetState(@SW_SHOW, $Gui)

    While 1
        $Msg = GUIGetMsg()
        Select
            Case $ButtonsNumber = 2 And $Msg = $Yes
                If GUICtrlRead($CheckBox) = 1 Then
                    $ReturnVal = 6+8
                Else
                    $ReturnVal = 6
                EndIf
                ExitLoop
            Case $ButtonsNumber = 2 And $Msg = $No
                If GUICtrlRead($CheckBox) = 1 Then
                    $ReturnVal = 7+8
                Else
                    $ReturnVal = 7
                EndIf
                ExitLoop
            Case ($ButtonsNumber = 1 Or $ButtonsNumber <> 2) And $Msg = $OK
                If GUICtrlRead($CheckBox) = 1 Then
                    $ReturnVal = 1+8
                Else
                    $ReturnVal = 1
                EndIf

                            Case $Msg = -3
                ExitLoop
        EndSelect
    Wend
    If $hWnd <> 0 Then WinSetState($hWnd, "", @SW_ENABLE)
    GUIDelete($Gui)
    Return $ReturnVal
EndFunc
Цитата:
Просьба привести любой простой пример выполнения опросов состояний элементов GUI в разных циклах
Не уверен что понимаю просьбу, что значить в разных циклах? цикл не важен, важно действие, что именно требуеся опрашивать, если нужно проверить текст поля ввода, тогда GuiCtrlGetData, если нужно проверить зажат ли той или инной чекбокс (птичка), тогда GuiCtrlRead() - если 1, тогда зажата, в противном случе вернётся 4, и т.д.

Цитата:
Что означает Case -3 (GUIGetMsg()= -3 )? Какой-то идентификатор завершения процессов ???
-3 это тоже самое что и $GUI_EVENT_CLOSE, я просто изначально значение многих констант выучил наизусть, поэтому по привычке использую их как есть, это иногда удобно, и позволяет не использовать вложения библиотеки, типа #Include <GuiConstants.au3>. $GUI_EVENT_CLOSE это константа, функция GuiGetMsg() возвращает её значение (-3) если послана команда закрыть окно ГУИ (пользователь нажал крестик закрытия программы).

Diamond
Цитата:
Наверное дело в чём то другом...
Возможно...

Цитата:
Похожая ошибка возникает при попытке добавить в словарь ключ (Кеу) который там уже существует.
Но у меня выводилась ошибка именно на строке с проверкой $Dict.Exists...

P.S
Но я всё же больше доверяю массивам (возможно боязень чего то нового).

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

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

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


Отправлено: 00:03, 09-06-2007 | #498