Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
story.gif
Правим исходники или стандартные сообщения на русском.
 
Базы данных Till написал " А не случалось ли вам выводить для пользователя сообщения об ошибках? Кажется -что может проще? Правильно кажется. Только бывает возможностей для него ошибиться – море, а вы один. Например, заполняет он базу, полей много, и обязательных для заполнения среди них тоже много. И ведь он забудет че ниб заполнить. И захочет шоб прога сама ему подсказала, че именно он забыл.

Слава Борланду, он уже все написал за нас – если у необходимого объекта TField свойство Required = true, то при его незаполнении вылетает месага типа “Field ‘Bonus’ must have a value” – пожалуйста, дополняйте именно это поле и работайте дальше. И все бы ничего, но попадаются еще юзеры, которые вместо того, шоб выучить быстренько английский, звонят вам и давай: …а твоя программа выдала какую-то ошибку, диктую по буквам – эф – латинское, и – белорусское, е – русское и т.д. Неплохой вариант – выдать ему MessageBox(Handle, PChar('Не все поля заполнены'), PChar('Ошибка при заполнении'), 0) и пускай, нерадивый, пробежит еще разок глазками по форме. Недостаток этого подхода в том, что нужно писать кучу дополнительного кода (try, except, end, MessageBox с параметрами – уже больше 5 слов!!!), да для каждого датасета, да еще переделывая то, что уже давно написано. (В русифицированной Делфе, все это может быть на русском и выскакивает – не знаю, но что делать если вы как и я не доверяете русифицированным продуктам). Я решил так – раз уж Делфи поставляется с исходниками, почему бы не подправить их как надо и забыть про эти стандартные месаги по крайней мере до выхода нового релиза. Во первых надо найти где эти самые мессаги определены. Для выше рассмотренного примера надо найти директорию $(DELPHI)sourcevcl; и в DBConsts.pas исправить ресурс SFieldRequired с 'Field ''%s'' must have a value'; на на что ниб типа SFieldRequired = 'А ну ка заполни поле''%s'' чем-ниб подходящим’ (вместо '%s''вставляется название поля).
(Можно так изменить значения всех ресурсов, но среди них много тех, что появляются (или должны появляться) только в режиме разработки т.е. для вас и если вы разработали парочку другую проектов, то и так поймете, что они значат. А что ниб вроде SDeleteRecordQuestion = 'Delete record?' – подтверждение перед удалением строки заменить будет совсем не лишним.)
После этого модуль DBConsts компилируем (например подключив его к любому левому приложению) и полученным DBConst.dcu заменяем такой же в директории $(DELPHI)lib
Вот почти и все. Месага – уже понятна и в любых ваших дальнейших проектах не нужно писать ни строчки лишнего кода. Название поля в ней вставляется из свойства DisplayLabel этого самого поля, так что его тоже следует набрать на русском (немецком, испанском). Напомню только – чтобы сообщение вываливалось до того. как произойдет попытка сохранить запись в саму БД, Required нужного нам поля должно быть true (если вы явно определяете список полей ч/з Field Editor и в БД поле помечено как обязательно – Required включится автоматом, а если вы сначала написали весь проект, а потом стали помечать обязательные поля – то надо будет включить ручками).
Еще один момент. В lookup – ских полях реальное изменение происходит в полях, определенных как внешние ключи, т.е. юзеру кажется, что он меняет поле «Имя работника», а на деле заносится код в обязательное поле «emploee_id». Здесь нужно свойству DisplayLabel как раз поля «emploee_id» присвоить «Имя работника» - все равно это поле обычно нигде не показывается.

P.S.
По такой схеме кстати можно поменять многие надписи: Yes, No, Cancel… на кнопках и Warning, Error… на формах, показываемых с помощью MessageDlg() – Consts.pas, сообщения сокетов - ScktCnst.pas… , константы сторонних разработчиков и тд и тп.
"
 
Разместил 20/07/2004 от rolcom ( Прочитано: )

  blocks.gif
Связанные ссылки
 

· Больше про Базы данных
· Новость от rolcom


Самая читаемая статья: Базы данных:
SQL-запросы в Delphi

 
blocks.gif
Рейтинг статьи
 

Средняя оценка: 4.44
Ответов: 9


Пожалуйста, проголосуйте за эту статью:

Отлично
Очень хорошо
Хорошо
Нормально
Плохо


 
blocks.gif
опции
 


 Напечатать текущую страницу  Напечатать текущую страницу

 Отправить статью другу  Отправить статью другу

 
 

Page generation 0.040 seconds