我可以把任何TWINCONTROL放入到CXGRID中,能浏览能编辑

我可以把任何TWINCONTROL放入到CXGRID中,能浏览能编辑

下面这段英文是我在DEVEXPRESS官方论坛上发表的:

I  can put any twincontrol into a cell of cxgrid which can view and can edit.

for example,cxgrid1 column color is a string field,it is 'True' or 'False' or NULL or '',I put a checkbox and dbcheckbox into the cell of it .it is for example,the checkbox and dbcheckbox can be any twincontrol.

procedure TForm1.tvcxgrid1CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
  begin
 if  (TcxGridItemDBDataBinding(AViewInfo.Item.DataBinding).FieldName='COLOR')  then
 begin
            CheckBox1.Left:=-100;
      CheckBox1.Visible:=true;

     if  vartostr(AViewInfo.DisplayValue)='' then
     CheckBox1.Checked:=false
     else  if vartostr(AViewInfo.DisplayValue)='False' then
     CheckBox1.Checked:=false
     else
     CheckBox1.Checked:=true;

     CheckBox1.Visible:=true;
   CheckBox1.PaintTo(AViewInfo.GridView.Site.Canvas.Canvas,AViewInfo.Bounds.Left+5,AViewInfo.Bounds.Top+4);

   ADone:=true;
      
 end;

/

procedure TForm1.scrooo;
var
liwww,GGG:integer;
ACellViewInfo:tcxgridtabledatacellviewinfo;
  begin

       GGG:=0;
      for liwww:=0 to  tcxcustomgridtableviewinfo(cxgrid1.ActiveView.ViewInfo).RecordsViewInfo.Count-1 do
      begin
      if
      tcxcustomgridtableviewinfo(cxgrid1.ActiveView.ViewInfo).RecordsViewInfo.Items[liwww].Focused then
      begin
       GGG:=liwww;
       break;
      end;
      end;
      if GGG=0 then
      begin
      DBCheckBox1.Left:=-1000;
      DBCheckBox1.Top:=-1000;
      DBCheckBox1.Height:=0;
      DBCheckBox1.Visible:=false;
      exit;
      end;


     ACellViewInfo:= tcxcustomgridtableviewinfo(cxgrid1.ActiveView.ViewInfo).RecordsViewInfo.Items[liwww].GetCellViewInfoByItem(tvcxgrid1COLOR);

 

          if DBCheckBox1.Top>=ACellViewInfo.Bounds.Top+SOURcegrid.Top+ACellViewInfo.GridView.Site.Top+4  then
          begin
      DBCheckBox1.Top :=min(ACellViewInfo.Bounds.Top+SOURcegrid.Top+ACellViewInfo.GridView.Site.Top+4,cxgrid1.Top+ACellViewInfo.GridView.Site.Top+ACellViewInfo.GridView.Site.Height);
          DBCheckBox1.Height := min(ACellViewInfo.Bounds.Bottom,ACellViewInfo.GridView.Site.Height) - ACellViewInfo.Bounds.Top-8;

          end
          else
          begin
          DBCheckBox1.Height := min(ACellViewInfo.Bounds.Bottom,ACellViewInfo.GridView.Site.Height) - ACellViewInfo.Bounds.Top-8;
         DBCheckBox1.Top :=min(ACellViewInfo.Bounds.Top+SOURcegrid.Top+ACellViewInfo.GridView.Site.Top+4,cxgrid1.Top+ACellViewInfo.GridView.Site.Top+ACellViewInfo.GridView.Site.Height);

      end;
      DBCheckBox1.Left := ACellViewInfo.Bounds.Left+5 ;

      DBCheckBox1.Width := ACellViewInfo.Bounds.Right-ACellViewInfo.Bounds.Left-10;

      DBCheckBox1.Visible := True;
end;

end;

procedure TForm1.tvcxgrid1TopRecordIndexChanged(
  Sender: TObject);
begin
    scrooo;
end;

procedure TForm1.tvcxgrid1FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
scrooo;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值