Захотелось сделать замену стандартной функции =messagebox(),
чтобы можно было менять текст на кнопках и еще кое-какие мелочи и при этом сохранить простоту вызова и возможность вывода текста в несколько строк.
Прислал: Леонид Фишкис  Категория: Интерфейс
Замена функции =messagebox()
Замена функции =messagebox()
Функция написана при активном участии Jek Zevs jek_zevs@aport2000.ru
Обновления:
01.03.2002 Сделано приведение кнопок к одному (максимальному) размеру
27.01.2002 Исправлена ошибка, связанная с установкой фокуса. (При вызове функции из методов типа
Valid() другой формы, неправильно интерпретируется ThisForm)
Изменен алгоритм для рассчета длины кнопок и расположения картинки.
23.01.2002 Добавлены следующие возможности:
автоформатирование текста (если строка в сообщении превышает половину экрана,
то она автоматически разбивается на подстроки),
автозакрытие формы через указанное число секунд,
Возможность задания второго параметра, как у messagebox() и
еще разные мелочи.
12.01.2002 Добавлена возможность задавать стандартную картинку не текстом, а по коду.
23.12.2001 Исправлено вырвнивание текста (в некоторых случаях текст заезжал на картинку).
Добавлена возможность выделить любую их кнопок (поставив символ "<"
перед надписью), исправлен порядок обхода кнопок.
Отличная функция!
Было бы здорово, если бы следующая версия
могла бы содержать не 1-3, а N кнопок,
возможно, в несколько рядов.
К сожалению, иногда такое бывает нужно. :)
Сергей
04.12.01 10:54:51
все в виде проекта
а нельзя ли тоже самое в виде исходника-листинга ?
(ну за исключением bmp-ек конечно)
Автор
06.12.01 12:51:47
>To Egor В своих задачах мне обычно хватает 3-х кнопок, но если хотите, то можно подредактировать
обработку второго параметра ф-ии msg(). Для реализации N кнопок придется добавлять эти кнопки на
форму из программы, используя классы. Все это можно сделать, но по-моему, для большинства задач
это не нужно.
>To Сергей Я не понял вопроса. Архив содержит кроме проекта программу msg.prg и форму formmsg.scx
(подкаталоги prg и form соответсвенно). Может быть у Вас не полностью раскрылся архив?
Timo
20.01.07 17:06:42
Попользвался. Спасибо.
Заметил небольшой глючок: Если вызвыть Msg(""), вываливается ошибка.