Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Подмена данных в визуальных DB-компонентах

01.01.2007

у всех TField существует свойство DisplayText которое используется всеми визуальными компонентами чувствительными к данным (DataAware), в том числе и TDBGrid'ом. Т.е. TDBGrid выводит именно это свойство. В свою очередь, значение этого свойства по умолчанию равно значению из поля БД, с учетом свойства DisplayFormat (у кого оно есть). Но это по умолчанию.

Реально-же, у всех TField есть событие OnGetText. Если оно определено для поля, то DisplayText этого поля будет возвращать то, что вернет OnGetText.

Словами слишком запутанно, проще на примере:

Если поля созданы в дизайнере, то требуемому полю (например FFF) вешаем обработчик FFFOnGetText событию OnGetText.

Если-же поля создаются динамически, то соответственно вешаем обработчик динамически.

Пример обработчика:

procedure FFFOnGetText(Sender: TField; var Text: string; DisplayText: Boolean); 
begin 
  if DisplayText then Text := AnsiUpperCase(Text); 
end;

С таким обработчиком, в поле FFF DBGrid'а, все символы будут заглавными, вне зависимости какие они в БД.

Естественно в БД они не меняются. При этом возникает интересный эффект. Если вы начнете редактировать поле FFF, то оно приобретет вид такой как в БД , до тех пор пока Вы не закончите редактирование.

Естественно это работает и для TDBEdit и пр.

Этот способ удобно применять когда нужно выполнить только текстовое преобразование для отображения значения поля.

Автор: Петрович

Взято из https://forum.sources.ru