DBGrid单元格画圆圈

夏雨未歇

夏雨未歇

2016-02-19 19:56

下面请跟着图老师小编一起来了解下DBGrid单元格画圆圈,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
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,分割字符串
展开更多 50%)
分享

猜你喜欢

DBGrid单元格画圆圈

编程语言 网络编程
DBGrid单元格画圆圈

Excel 单元格、单元地址及活动单元格

办公软件
Excel 单元格、单元地址及活动单元格

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

单元格合并

编程语言 网络编程
单元格合并

巧妙提取合并单元格及对应单元格数据

电脑入门
巧妙提取合并单元格及对应单元格数据

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

excel单元格锁定

电脑入门
excel单元格锁定

excel单元格保护

电脑入门
excel单元格保护

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

升级Win10系统后音响出现杂音怎么办

升级Win10系统后音响出现杂音怎么办

Delphi7中存储unicode的BUG

Delphi7中存储unicode的BUG
下拉加载更多内容 ↓