При работе программы часто возникает необходимость показать пользователю окно содержащее то или иное информационное сообщение. Данная задача легко решается с помощью стандартной процедуры ShowMessage или WinAPI функции MessageBox. Однако у модуля данных в данном отношении имеются определённые ограничения.
Модуль данных является наследником класса TDataModule. Так как у TDataModule отсутствует свойство Handle, которое необходимо в качестве первого параметра функции MesageBox, её использование для решения данной задачи невозможно. Однако у неё есть удобная альтернатива.
Дело в том, что процедура ShowMessage для своей работы не использует WinAPI функцию MessageBox. Вместо этого она оперирует объектом класса TMessageForm, который является непосредственным наследником класса TForm. Поэтому данная процедура позволяет с лёгкостью получить требуемый результат.
Для того чтобы получить возможность использовать функцию из наследника TDataModule, необходимо в разделе uses секции interface подключить модуль Vcl.Dialogs, так как в отличие от формы или фрейма у модуля данных он по умолчанию не подключен.
Добавить комментарий