![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Как вы обрабатываете ошибки в своих программах? Т.е. если пользователь вводит недопустимые значения.
Можно ли как-то заменить стандартную процедуру ShowMessage на что-то более интересное? Хотелось бы например вставить в сообщение картинку, поменять заголовок появляющегося окна на что-то наиболее подходящее чем Project1, ввести дополнительные кнопки кроме OK |
|
#3
|
||||
|
||||
|
Статья у Декодинга хороша, но возможно человек просил что-нибудь попроще.
Есть 2 простые функции MessageDlg(); MessageBox(); В стандартном хэлпе про них подробно написано, глянь. Ну и вот тебе примеры вызова их: Код:
...
MessageDlg('My Error Message', mtError, [mbOK], 0);
...
MessageBox(0, 'My Information Message', 'WARNING', mb_IconInformation + mb_OK + mb_TaskModal); |
|
#4
|
|||
|
|||
|
Для полной красоты можно использовать MessageBox. Про него я подробно рассказал вот тут.
По поводу обычного MessageBox: я предпочитаю Application.MessageBox();. Мне как-то удобнее с ним. P.S. Прикладываю код своего MessageBox'а. Тапком не бейте, пожалуйста Сделал несколько необычно, форма, которая вызвается через свой Unit... |
|
#5
|
||||
|
||||
|
Если вы озадачились красивым оформлением, то для этого написано масса компонентов. Одним из самых красивых, и что не менее важно бесплатных для Россиян, является AlphaControl. Немножко менее красивый, зато со своими мессаджами SUIPack, но он платный.
|
|
#6
|
|||
|
|||
|
AlphaControl использую, но командой ShowMessage ('текст сообщения'); выводится стандартное окно (оформленно как у текущей темы, в моем случае интерфейс Vista), но мне не нравится заголовок окна Project1, я бы хотел его менять в зависимости от рода ошибки на что-то более приглядное типа "Ошибка входных данных" и т.д. Плюс еще хотел бы добавлять произвольные изображения в форму.
Спасибо за ответ, попробую почитать про MessageDlg(); и MessageBox(); |
|
#7
|
||||
|
||||
|
Можно добавить еще, что функция Messagebox возвращает определенное значение типа Integer в зависимости от того, какая кнопка была нажата на диалоговом окне:
3 - Пользователь выбрал кнопку Abort 2 - Пользователь выбрал кнопку Cancel. 5 - Пользователь выбрал кнопку Ignore. 7 - Пользователь выбрал кнопку No. 1 - Пользователь выбрал кнопку ОК. 4 - Пользователь выбрал кнопку Retry. 6 - Пользователь выбрал кнопку Yes. |
|
#8
|
||||
|
||||
|
Цитата:
Менять можно через Project->Options. Но одновременно меняется текст на кнопке в таскбаре. Изучай MessageBox и MessageDlg... полезно... |