Mega Code Archive

 
Categories / Delphi / Examples
 

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

Title: I can put any twincontrol into a cell of cxgrid which can view and can edit Question: put any twincontrol into a cell of cxgrid which can view and can edit. Answer: 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;