做出类似我的网摘的效果

解决方案 »

  1.   

    不妨试试第三方按件cxGrid,cxTreeview或cnpack下的treeview都不错
      

  2.   

    可以加一个布尔类型字段
    自己画出来。procedure TSetCompanyFrm.DBSKNameDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    const
      CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK,
                                             DFCS_BUTTONCHECK or DFCS_CHECKED);
    begin
      if Column.Field.DataType = ftBoolean then
        begin
          DBSkName.Canvas.FillRect(Rect);
          DrawFrameControl(DBSkName.Canvas.Handle,
                             Rect,
                             DFC_BUTTON,
                             CtrlState[Column.Field.AsBoolean]);
         end;
    end;
    用dbgrideh也可以自动显示出来
      

  3.   

    解决方法如下,自己重写OnDrawColumnCell事件即可
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    const
    CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
    begin
    if Column.Field.DataType = ftBoolean then
    begin
    DBGrid1.Canvas.FillRect(Rect);
    DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]);
    end;
    end;之前看到的一篇文章~~
      

  4.   

    建议你改用ListView来做,自带的就有CheckBox功能。
      

  5.   

     (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
    为啥搞三个  相同的 状态啊 布尔值值有两个 这个 数组集合只要两个值就行了 
    数组只有0,1两个 下标啊 
      

  6.   

    ftBoolean这个变量是怎么来的啊 看的一头雾水
      

  7.   

    查了下 好象是unit  db单元文件下的 问下如何这些文件放在delphi的哪个目录下啊
      

  8.   

    if Column.Field.DataType = ftBoolean then这种方式,我也不明白。但用ListView可以实现。