Tipulatoid
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Пишу функцию, которая будет рисовать GUI. В зависимости от переданных в нее параметров, некоторые элементы на GUI могут рисоваться, а могут и нет. Как правильно написать цикл While для этого GUI, чтобы в случае если элементы не нарисованы, он не обрабатывал команды Case по этим элементам? Пробовал If - не получилось. Вариант рисовать необязательные элементы, а потом прятать не подходит. Код: While 1 Switch GUIGetMsg() ; обязательные элементы Case $GUI_EVENT_CLOSE ExitLoop Case $WLButton1 $To = GUICtrlRead ($WLInput1) $Subject = GUICtrlRead ($WLInput2) $WLetterBody = GUICtrlRead ($WLEdit1) _SendWarningLetter ($From, $SMTPServer, $Login, $Passwd, $SMTPPort, $To, $Subject, $WLetterBody) ExitLoop ; конец обязательных элементов ; необязательные элементы Case $WLIcon4 ; иконка аттача ShellExecute($AddedAttachName) Case $WLLabel3 ; label с именем аттача ShellExecute($AddedAttachName) Case $WLButton2 ; кнопка удалить аттач $AddedAttachName = "" GUICtrlSetData ($WLLabel3, "") GUICtrlSetState ($WLIcon4, $GUI_HIDE) GUICtrlSetState ($WLLabel3, $GUI_HIDE) GUICtrlSetState ($WLButton2, $GUI_DISABLE) GUICtrlSetState ($WLButton3, $GUI_ENABLE) GUICtrlSetState ($WLIcon4_1, $GUI_SHOW) GUICtrlSetState ($WLIcon4_2, $GUI_HIDE) GUICtrlSetState ($WLButton1, $GUI_DISABLE) Case $WLButton3 ; кнопка вставить аттач $AddedAttachName = FileOpenDialog ("Выберите прикладываемый файл", @ScriptDir, "Архивы (*.zip; *.rar)", 1+2, $AddedAttachName, $WarningLetterGUI) If $AddedAttachName <> "" Then GUICtrlSetData ($WLLabel3, StringRegExpReplace($AddedAttachName, ".*\\", "")) GUICtrlSetState ($WLIcon4, $GUI_SHOW) GUICtrlSetState ($WLLabel3, $GUI_SHOW) GUICtrlSetState ($WLButton2, $GUI_ENABLE) GUICtrlSetState ($WLButton3, $GUI_DISABLE) GUICtrlSetState ($WLIcon4_1, $GUI_HIDE) GUICtrlSetState ($WLIcon4_2, $GUI_SHOW) If BitAND(GUICtrlGetState($WLIcon1_2), $GUI_SHOW) And BitAND(GUICtrlGetState($WLIcon2_2), $GUI_SHOW) And BitAND(GUICtrlGetState($WLIcon3_2), $GUI_SHOW) And BitAND(GUICtrlGetState($WLIcon4_2), $GUI_SHOW) Then GUICtrlSetState ($WLButton1, $GUI_ENABLE) EndIf ; конец необязательных элементов EndSwitch WEnd | Добавлено Решил, не стоит беспокоиться | Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 12:39 05-11-2008 | Исправлено: Tipulatoid, 14:17 05-11-2008 |
|