|
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var s:String; begin TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State); s:=Column.Field.DisplayText; if (Column.FieldName="FAX") and (Length(s)<10) then begin with TDBGrid(Sender).Canvas do begin Pen.Color :=clRed; Arc(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,Rect.Left,Rect.Top,Rect.Left,Rect.Top); end; end; end; 直接画圆弧就可以了,后面的这种方法只是提供一种参考: procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const Flags:array [TAlignment] of DWORD=(DT_LEFT,DT_RIGHT,DT_CENTER); var s:String; R:TRect; begin TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State); s:=Column.Field.DisplayText; r:=Rect; if (Column.FieldName="FAX") and (Length(s)<10) then begin with TDBGrid(Sender).Canvas do begin Pen.Color :=clRed; RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,Rect.Left,Rect.Top); DrawText(Handle,pchar(s),length(s),R,Flags[Column.Alignment] or DT_VCENTER); end; end; end;
bytetype,用于判断某个 Char 是单个字母,还是双字节的前一位或后一位。 mbSingleByte 单字母 mbLeadByte 双字节第一位 mbTrailByte 双字节第二位
ExtractStrings,分割字符串
数据挖掘交友
|
提升网管技术,结识网管专家
|
| 【
|
|
|
|
|
[数据挖掘专家]
[数据挖掘研究院]
[数据挖掘论坛]
[数据挖掘实验室]
|
上一篇:DBGridEh实现单击标题栏排序方法 选择自 snowfall 的 Blog
下一篇:Deiphi编译优化导致的死循环
|