我只需要更改单元格的内容以供显示。我在DrawColumnCell中执行此操作:
if Column.FieldName = 'UUID' then
begin
with (Sender as TDBGrid).Canvas do
begin
FillRect(Rect);
strTemp := (Sender as TDBGrid).DataSource.DataSet.FieldByName('UUID').AsString;
strTemp := RightStr(strTemp, Length(strTemp) - LastDelimiter('-', strTemp));
TextOut(Rect.Right - 2 - (Sender as TDBGrid).Canvas.TextWidth(strTemp), Rect.Top + 2, strTemp);
end;
end;
Uuid-外观为‘SHRYU-5TRP0-RT-898-763523561294’。О只需要显示‘763523561294’即可。
上面的代码解决了这个问题,但如果选择这个单元格,原来的值和我的值相互重叠就会被替换。如何避免这种情况?
1条答案
按热度按时间rvpgvaaj1#
数据集基础字段的
OnGetText()
事件是执行此操作的更合适位置。在运行时使用持久化字段或挂钩事件。