Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.03.2009, 09:08
Darken Darken вне форума
Прохожий
 
Регистрация: 24.02.2009
Сообщения: 48
Репутация: 10
По умолчанию альтернатива ShowMessage

Как вы обрабатываете ошибки в своих программах? Т.е. если пользователь вводит недопустимые значения.

Можно ли как-то заменить стандартную процедуру ShowMessage на что-то более интересное? Хотелось бы например вставить в сообщение картинку, поменять заголовок появляющегося окна на что-то наиболее подходящее чем Project1, ввести дополнительные кнопки кроме OK
Ответить с цитированием
  #2  
Старый 31.03.2009, 09:38
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Вот тут пример усовершенствование стандартного Message Dialog'a.
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #3  
Старый 31.03.2009, 10:05
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Счастье

Статья у Декодинга хороша, но возможно человек просил что-нибудь попроще.

Есть 2 простые функции
MessageDlg();
MessageBox();


В стандартном хэлпе про них подробно написано, глянь.

Ну и вот тебе примеры вызова их:
Код:
...
MessageDlg('My Error Message', mtError, [mbOK], 0);
...
MessageBox(0, 'My Information Message', 'WARNING', mb_IconInformation + mb_OK + mb_TaskModal);
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #4  
Старый 31.03.2009, 10:53
BloodFooria BloodFooria вне форума
Новичок
 
Регистрация: 30.10.2008
Адрес: Улан-Удэ
Сообщения: 81
Репутация: 10
По умолчанию

Для полной красоты можно использовать MessageBox. Про него я подробно рассказал вот тут.

По поводу обычного MessageBox: я предпочитаю Application.MessageBox();. Мне как-то удобнее с ним.

P.S. Прикладываю код своего MessageBox'а. Тапком не бейте, пожалуйста Сделал несколько необычно, форма, которая вызвается через свой Unit...
Вложения
Тип файла: rar MMB.rar (29.7 Кбайт, 69 просмотров)
__________________
Auta i Lome...
Ответить с цитированием
  #5  
Старый 31.03.2009, 11:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Если вы озадачились красивым оформлением, то для этого написано масса компонентов. Одним из самых красивых, и что не менее важно бесплатных для Россиян, является AlphaControl. Немножко менее красивый, зато со своими мессаджами SUIPack, но он платный.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 31.03.2009, 11:18
Darken Darken вне форума
Прохожий
 
Регистрация: 24.02.2009
Сообщения: 48
Репутация: 10
По умолчанию

AlphaControl использую, но командой ShowMessage ('текст сообщения'); выводится стандартное окно (оформленно как у текущей темы, в моем случае интерфейс Vista), но мне не нравится заголовок окна Project1, я бы хотел его менять в зависимости от рода ошибки на что-то более приглядное типа "Ошибка входных данных" и т.д. Плюс еще хотел бы добавлять произвольные изображения в форму.

Спасибо за ответ, попробую почитать про MessageDlg(); и MessageBox();
Ответить с цитированием
  #7  
Старый 31.03.2009, 11:51
Аватар для glaZZ
glaZZ glaZZ вне форума
Прохожий
 
Регистрация: 18.11.2008
Сообщения: 26
Репутация: 10
По умолчанию

Можно добавить еще, что функция Messagebox возвращает определенное значение типа Integer в зависимости от того, какая кнопка была нажата на диалоговом окне:

3 - Пользователь выбрал кнопку Abort
2 - Пользователь выбрал кнопку Cancel.
5 - Пользователь выбрал кнопку Ignore.
7 - Пользователь выбрал кнопку No.
1 - Пользователь выбрал кнопку ОК.
4 - Пользователь выбрал кнопку Retry.
6 - Пользователь выбрал кнопку Yes.
Ответить с цитированием
  #8  
Старый 31.03.2009, 12:12
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от Darken
AlphaControl использую, но командой ShowMessage ('текст сообщения'); выводится стандартное окно (оформленно как у текущей темы, в моем случае интерфейс Vista), но мне не нравится заголовок окна Project1, я бы хотел его менять в зависимости от рода ошибки на что-то более приглядное типа "Ошибка входных данных" и т.д. Плюс еще хотел бы добавлять произвольные изображения в форму.
Заголовок мессаджей = Application.Title
Менять можно через Project->Options.
Но одновременно меняется текст на кнопке в таскбаре.
Изучай MessageBox и MessageDlg... полезно...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025