DBGrid单元格画圆圈

2016-02-19 19:56 6 1 收藏

下面请跟着图老师小编一起来了解下DBGrid单元格画圆圈,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

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,分割字符串

来源:https://www.tulaoshi.com/n/20160219/1622309.html

延伸阅读
标签: excel
选中区域   先选中所要合并的区域,注意合并只能是相连的单元格才行。选中的方法如下图,可以直接从A1拖拽到D1;或者选择A1,然后按住shift键点击D1,即可选中A1--D1的区域; 合并及居中   然后在上面的格式栏里找到“合并及居中”,点击这个按钮; 点击确定   点击“合并及居中”后,会出现警示对话框,说...
标签: excel
Excel单元格出现####错误   我们可能会遇到Excel单元格出现####号的情形,尤其是在用函数公式进行计算,毕竟函数是个非常严密的东西,参数不正确等等原因都会导致结果不对,显示####错误。但是,不仅仅就是这一tulaoshi种情形下会出现###号,下面,我就详细的来介绍一下。 出现###错误情形一: 单元格宽度不足以显示结果而...
标签: excel
Excel怎么拆分单元格   由于Excel本身就是有许多小的表格组成的,因此我们无法拆分单元格,您可以插入行或列,同时也可以合并单元格,所谓的拆分单元格,就是将已经合并的单元格执行撤消操作。 1、首先,我们可以将几个单元格进行合并,用鼠标选中要合并的表格,点击如下图: 2、然后在合并后的单元格上右键 3、...
标签: 电脑入门
在工作表中,每一个单元格保存有一个数据,在使用工作表时我们需要在这些单元格中移动到达目的地址,Excel内单元格指针的移动有多种方式,下面我们分别进行介绍。 3.2.1 在显示范围内移动 如果目的单元格在当前的显示区域上,将鼠标指向目的单元格,然后在其上单击即可。如果要指定的单元格不在当前显示区域中,例如,我们要由A3单元格移动到...
标签: 电脑入门
如果在某一单元格中输入的文本内容太多,导致无法完全显示,可以通过自动换行的方式将数据在单元格中以多行的方式显示,也就是excel单元格内换行。 一、excel自动换行 自动换行可通过设置段落对齐方式来实现,其具体操作如下: Excel2010操作方法:选择需要换行的单元格或单元格区域,在选择卡组中单击按钮,如图所示: Excel2003操作方...

经验教程

208

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部