Что нового

[Ошибки] Ошибка в button и дочернем окне, медленный отклик

vanekzver

Новичок
Сообщения
91
Репутация
2
Чтобы нажать button или закрыть дочернее окно нужно нажать много раз, иногда 2, иногда 4, в чем может быть проблема?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Re: [Ошибки] Ошибка button и дочернего окна

vanekzver
Присутствует либо Sleep() либо громоздкая функция в главном цикле
Код:
While 1 

WEnd

Где код? Мы гадать будем?
и еще:

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Ошибки] Ошибка button и дочернего окна" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Автор
V

vanekzver

Новичок
Сообщения
91
Репутация
2
Re: [Ошибки] Ошибка button и дочернего окна

Код:
While 1
    $msg = GUIGetMsg(1)
    Select
        case $msg[0] = $Obj2
            GUISetState(@SW_SHOW, $Form2)
        Case $msg[0] = $GUI_EVENT_CLOSE
            If $msg[1] = $Form2 Then
                GUISetState(@SW_HIDE, $Form2)
            ElseIf $msg[1] = $Form1 Then
                Exit
            EndIf
	EndSelect
	$msg2 = GUIGetMsg(1)
    Select
        case $msg2[0] = $Obj3
            GUISetState(@SW_SHOW, $Form3)
        Case $msg2[0] = $GUI_EVENT_CLOSE
            If $msg2[1] = $Form3 Then
                GUISetState(@SW_HIDE, $Form3)
            ElseIf $msg2[1] = $Form1 Then
                Exit
            EndIf
		EndSelect
		    Switch GUIGetMsg()
        Case -3
            Exit
        Case $Obj4
            Send('{F5}')
    EndSwitch
WEnd


Добавлено:
Сообщение автоматически объединено:

Вот код
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
vanekzver [?]
Ну а зачем 3 раза опрашивать события? :blink:

Код:
While 1
	$msg = GUIGetMsg(1)
	
	Select
		Case $msg[0] = $Obj2 Or $msg[0] = $Obj3
			GUISetState(@SW_SHOW, $msg[1])
		Case $msg[0] = $Obj4
			Send('{F5}')
		Case $msg[0] = $GUI_EVENT_CLOSE
			If $msg[1] = $Form1 Then
				Exit
			Else
				GUISetState(@SW_HIDE, $msg[1])
			EndIf
	EndSelect
WEnd
 
Автор
V

vanekzver

Новичок
Сообщения
91
Репутация
2
Код:
Case $msg[0] = $Obj4
            Send('{F5}')

Не относиться к отрывку связанному с $msg


Добавлено:
Сообщение автоматически объединено:

Аааа я понял, каждая функция, и obj2 и obj3 открывает разные формы, form2 и form3 , куда их вписать? поэтому не работает походу


Добавлено:
Сообщение автоматически объединено:

Код:
While 1
    $msg = GUIGetMsg(1)
    Select
		Case $msg[0] = $Obj2 Or $msg[0] = $Obj3
			GUISetState(@SW_SHOW, $msg[1])
		If $msg [0] = $Obj2 Then
			GUISetState(@SW_SHOW, $Form2)
		ElseIf $msg[0] = $Obj3 Then
            GUISetState(@SW_SHOW, $Form3)
		EndIf
        Case $msg[0] = $GUI_EVENT_CLOSE
            If $msg[1] = $Form2 Then
                GUISetState(@SW_HIDE, $Form2)
            ElseIf $msg[1] = $Form3 Then
                GUISetState(@SW_HIDE, $Form3)
			ElseIf $msg[1] = $Form1 Then
				Exit
            EndIf
	EndSelect
WEnd
Готово))) Спасибо
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Лишний код detected! :Typing:
Ну раз уж полного кода нет (или хотя бы похожего-рабочего), то пусть будет так.
 
Верх