Как сделать, чтобы в DBGrid вместо цифр были соответствующие константы
Ламер к юзеру пришел, и спросил наш ламер:
"Что такой дисковод, и что такое сканер?"
Юзер голову поднял и ответил ясно:
"Шел бы ты куда подальше, идиот несчастный!"
procedure TForm1.Grid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin// ВАЖНО: имя поля большими буквами!if Column.Field.FieldName = 'PLATEZH' thenbegin
Grid1.Canvas.FillRect(Rect);
if Column.Field.AsInteger = 0 then
Grid1.Canvas.TextOut(Rect.Left + 1, Rect.Top + 2, 'наличными')
else
Grid1.Canvas.TextOut(Rect.Left + 1, Rect.Top + 2, 'безнал');
end;
end;
Переписать целочисленные значения в DBGrid соответствующими константами можно создавая набор констант и используя их в коде вместо жесткого кодирования целочисленных значений.
Пример:
constPaymentTypeCash=0;PaymentTypeCreditCard=1;procedureTForm1.Grid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState);begin// ВАЖНО: имя поля большими буквами!ifColumn.Field.FieldName='PLATEZH'thenbeginGrid1.Canvas.FillRect(Rect);ifDataCol=0then// предполагается, что DataCol - это индекс столбца, который содержит тип платежаGrid1.Canvas.TextOut(Rect.Left+1,Rect.Top+2,PaymentTypeCash);elseGrid1.Canvas.TextOut(Rect.Left+1,Rect.Top+2,PaymentTypeCreditCard);end;end;
В этом примере я создал две константы PaymentTypeCash и PaymentTypeCreditCard. Затем в коде вы можете использовать эти константы для замены целочисленных значений. Это делает ваш код более читаемым и поддерживаемым.
Также обратите внимание, что я использую DataCol вместо Column.Field.AsInteger. Предполагается, что DataCol - это индекс столбца, который содержит тип платежа, поэтому это должно корректно отображать соответствующую константу в grid.
Помните, что вам нужно адаптировать индексы и константы в соответствии с вашим реальным схемой базы данных.
В статье описывается как можно заменить цифры в ячейках DBGrid на соответствующие константы, используя процедуру TForm1.Grid1DrawColumnCell.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.