Карта сайтаСсылкиКонтакты

Хостинг


Перегрузка ShowMessage для вывода Boolean, Integer, Float...

PDF Печать
Статьи

Процедура ShowMessage в Delphi, определенная в модуле Dialogs.pas отображает значение в диалоговом окне и ждет пользователя, чтобы он щелкнул кнопку OK.

Полезно для отладки выводить промежуточные результаты переменных, свойств, результатов функций при помощи процедуры ShowMessage.

Неудобная сторона процедуры ShowMessage - это то, что она принимает только строки в качестве параметра, в то время, как переменные могут быть целыми числами, с плавающей точкой, булевыми значениями и т.д.

Каждый раз, когда нужно отобразить, например, целое число с использованием ShowMessage, возникает необходимость преобразовать целое число в строку (используя IntToStr). Так, вызов ShowMessage для целого числа выглядел бы так:


ShowMessage(IntToStr(99389));

Более гибкий ShowMessage

Чтобы ускорить отладку при кодировании можно добавить несколько overloaded процедур ShowMessage и поместить их все в модуле Common.pas.

Вот пример переделанного модуля Common.pas:


unit common;
 
interface
 
uses
  dialogs, sysutils;
 
procedure ShowMessage(const value : string) ; overload;
procedure ShowMessage(const value : integer) ; overload;
procedure ShowMessage(const value : extended) ; overload;
procedure ShowMessage(const value : boolean) ; overload;
 
implementation
 
// отображает строку в диалоговом окне
procedure ShowMessage(const value : string) ;
begin
   Dialogs.ShowMessage(value) ;
end;
 
// отображает целое число в диалоговом окне
procedure ShowMessage(const value : integer) ;
begin
   ShowMessage(IntToStr(value)) ;
end;
 
// отображает число с плавающей точкой в диалоговом окне
procedure ShowMessage(const value : extended) ;
begin
   ShowMessage(FloatToStr(value)) ;
end;
 
// отображает булево значение в диалоговом окне
procedure ShowMessage(const value : boolean) ;
begin
   ShowMessage(BoolToStr(value, true)) ;
end;
 
end.

Как использовать перегруженную процедуру ShowMessage

Если Вы хотите использовать этот модуль из другого модуля, Вам конечно, нужно включить его в разделе uses, плюс:

Удостоверьтесь, что модуль Common перечислен ПОСЛЕ модуля Dialogs.

Вот пример:


 uses dialogs, common;
 
 begin
   ShowMessage(99389) ;
   ShowMessage(true) ;
 end;

 

Комментарии   

 
0 #1 Дмитрий 17.05.2011 01:26
Скажите как вывести переменную и текст вместе одним Шов Месседж???
Цитировать
 
 
0 #2 Удав Анаконда 17.05.2011 16:57
Держи чувак. Сегодня рассказывал на лекции, и сам понял :D
procedure showmessage(con st k:integer; const st:string); overload;

procedure showmessage(con st k:integer; const st:string); overload;
begin
Dialogs.showmes sage(inttostr(k )+' '+st);
end;
Цитировать
 
 
0 #3 Удав Анаконда 17.05.2011 16:58
а да, Вот пример
showmessage(3, 'равно три');
Цитировать
 
 
0 #4 Удав Анаконда 17.05.2011 17:16
И Спасибо автору поста, у меня первая функция завершалась переполнением стека
procedure ShowMessage(con st value : string) ;
begin
ShowMessage(val ue) ;
end;
Dialogs. впереди я поставить не догадался 8)
Цитировать
 

Добавить комментарий


Защитный код
Обновить