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

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

Googler


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

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


Цитата Grammaton Cleric:
"не мог бы ты объяснить?" »
без проблем - у меня лобовой вариант привел к дублированию кода (MsgBox):
Код: Выделить весь код
While 1
    If DriveStatus("A:")=="READY" Then
        If FileExists('A:\gk.db3') Then
            ExitLoop
        Else
            If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
                                            'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
                                            'Вы хотите продолжать работу?') = 7 Then Exit
        EndIf
    Else
        If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
                                        'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
                                        'Вы хотите продолжать работу?') = 7 Then Exit
    EndIf
    Sleep(100)
WEnd

MsgBox(48, "Информация", "Запущена установка программы!")
поэтому я ввел некий флаг $Next, который изначально равен FALSE (aka "красный свет", TRUE - "зеленый"),
далее (с учетом изменений):

- если вставлен диск, то DriveStatus() дает "зеленый", иначе - "красный";
- FileExists() может изменить цвет на "красный", но только с "зеленого" (иначе будет ошибка);
- если после всех проверок "зеленый", то скрипт выходит из цикла и продолжает работу;
- если "красный", то попадаем на предупреждение и далее либо выход из скрипта, либо по циклу до "зеленого"
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:23, 29-10-2008 | #1028