Dialog.Message

number Dialog.Message ( string Title,
string Text,
number Type = MB_OK,
number Icon = MB_ICONINFORMATION,
number DefaultButton = MB_DEFBUTTON1 )
Примеры

Описание

Представляет диалоговое окно с информационным сообщением для пользователя.

Параметры

Title

(строка) Текст, который будет отображаться в заголовке диалогового окна.

Text

(строка) Текст, что появится в диалоговом окне.

Type

(число) Тип отображаемого диалогового окна:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
MB_OK0OK (По умолчанию)
MB_OKCANCEL1OK | Отмена (OK | Cancel)
MB_ABORTRETRYIGNORE2Прервать | Повторить | Пропустить (Abort | Retry | Ignore)
MB_YESNOCANCEL3Да | Нет | Отмена (Yes | No | Cancel)
MB_YESNO4Да | Нет (Yes | No)
MB_RETRYCANCEL5Повтор | Отмена (Retry | Cancel)

Icon

(число) Иконка, показываемая в диалоговом окне:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
MB_ICONNONE0Нет.
MB_ICONSTOP16Стоп.
MB_ICONQUESTION32Вопрос.
MB_ICONEXCLAMATION48Восклицание.
MB_ICONINFORMATION64Информация. (По умолчанию)

DefaultButton

(число) Кнопка, что будет получать фокус по умолчанию:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
MB_DEFBUTTON10Первая кнопка слева. (По умолчанию)
MB_DEFBUTTON2256Вторая кнопка слева.
MB_DEFBUTTON3512Третья кнопка слева.

Возврат

ResultVariable

(число) Числовая константа для нажатой кнопки:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
IDOK1Кнопка OK.
IDCANCEL2Кнопка Отмена (Cancel).
IDABORT3Кнопка Прервать (Abort).
IDRETRY4Кнопка Повторить (Retry).
IDIGNORE5Кнопка Пропустить (Ignore).
IDYES6Кнопка Да (Yes).
IDNO7Кнопка Нет (No).

Если происходит ошибка, будет возвращена IDCANCEL (значение 2). Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

btn = Dialog.Message("Error!", "Unable to proceed.", MB_RETRYCANCEL);
Предупреждает пользователя о произошедшей ошибке и спрашивает его, что нужно делать повторить или отменить. В зависимости от того, какая кнопка будет кликнута, в переменной btn будет хранится значение представленное константой IDRETRY или IDCANCEL.

Пример 2

Dialog.Message("Important", "The rain in Spain falls mainly on the plain.", MB_OK, MB_ICONEXCLAMATION);
Предоставляет пользователю важное (хорошо, может быть не так уж важное :) сообщение, и ждет когда он кликнет по кнопке OK для продолжения.

Примечание переводчика: В сообщении говорится: Важно. Дождь в Испании падает, в основном, на равнину.

Примечание: Этот пример не сохраняет возвращаемое значение в переменной, так как она всегда будет IDOK. В случаях подобных этому, мы говорим, что возвращаемое значение игнорируется.

Пример 3

ishappy = Dialog.Message("Prying Question #023", "Are you happy?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1);
Спрашиваем пользователя, счастлив ли он, через диалоговое окно с кнопками Yes (Да) и No (Нет). Так как задается вопрос, указана иконка MB_ICONQUESTION. Для поощрения благополучия у наших пользователей, кнопка Yes (Да) выбрана по умолчанию. Ответ пользователя сохраняется в переменной ishappy как одна из двух констант, IDYES или IDNO.

Пример 4

-- Gets the path to the user's My Documents folder.
-- Получаем путь к папке пользователя Мои документы.
my_docs_path = Shell.GetFolder(SHF_MYDOCUMENTS);

-- Check to see if the My Documents folder detection was successful.
-- Смотрим, было ли обнаружение папки Мои документы успешным.
if (Application.GetLastError() == 0)then

    -- Search the user's My Documents folder for the file "Data.ini".
    -- Поиск файла "Data.ini" в папке пользователя Мои документы.
    search_results = File.Find(my_docs_path, "Data.ini", true, false, nil);

    -- Check to see if an error occurred during the search. If it did, display the error message.
    -- Смотрим, не произошло ли ошибки в течении поиска. Если это случилось, показываем сообщение об ошибке.
    error = Application.GetLastError();
    if error ~= 0 then
        Dialog.Message("Error",_tblErrorMessages[error]);
    else

        -- If no files were found, notify the user.
        -- Если файлов не найдено, уведомляем пользователя.
        if (search_results == nil) then
            Dialog.Message("Notice", "Data.ini was not found in your My Documents folder.");

        -- If files were found, display a dialog containing a list of their locations.
        -- Also ask for deletion confirmation.
        -- Если файлы найдены, показываем диалоговое окно, содержащее список их размещения.
        -- Также запрашиваем подтверждение удаления.
        else
            message = "Data.ini was found in the following location(s). Click OK to delete the file(s):\r\n\r\n";
            for index, path in pairs(search_results) do
                message = String.Concat(message, path.."\r\n");
            end
            proceed = Dialog.Message("File Search Results", message, MB_OKCANCEL, MB_ICONQUESTION, MB_DEFBUTTON1);

            -- If the user clicked OK, delete all of the files found.
            -- Если пользователь кликнул OK, удаляем все найденные файлы.
            if proceed == IDOK then

                -- Delete each file found in the search.
                -- Удаляем каждый файл, найденный при поиске.
                for index, path in pairs(search_results) do
                    File.Delete(path, false, false, false, nil);

                    -- Check to see if any errors occurred during the deletion.
                    -- Смотрим, не произошло ли ошибки при удалении.
                    if (Application.GetLastError() ~= 0) then
                        Dialog.Message("Error", "The file located at: " .. path .. " could not be deleted.");
                    end
                end
            end
        end
    end
end
В этом примере используется действие File.Find для поиска всех копий определенных INI файлов в папке пользователя Мои документы. Если файл найден, более чем в одном месте, пользователю предоставляется их список и запрашивается, с помощью действия Dialog.Message, не хочет ли он их удалить. Если он согласен, каждая копия удаляется при помощи действия File.Delete.
Смотрите также: Связанные действия