cxGrid的使用方法 联系客服

发布时间 : 星期日 文章cxGrid的使用方法更新完毕开始阅读6dd4bb18650e52ea5518989f

AHitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y); if AHitTest is TcxGridRecordCellHitTest then begin

FTrackItem := TcxGridRecordCellHitTest(AHitTest).Item; FTrackRec := TcxGridRecordCellHitTest(AHitTest).GridRecord; end else begin

FTrackItem := nil; FTrackRec := nil; end;

if (ATrackItem <> FTrackItem) or (ATrackRec <> FTrackRec) then begin

// Invalidate old cell

if ATrackRec <> nil then

ATrackRec.Invalidate(ATrackItem); // Invalidate new cell

if FTrackRec <> nil then

FTrackRec.Invalidate(FTrackItem);

end; end;

16)ExpressQuantumGrid 3.2.2中的dxdbgrid和4.2版本中的cxgrid有什幺区别? 有很大的区别,基本上相当于是两个控件一样。

cxgrid是在dxdbgrid基础上完全重写的,所以cxgrid不支持dxdbgrid 所以cxgrid里面特意提供了一个将dxdbgrid导入到cxgrid的功能。

17)怎样设计多表头的cxGrid?

解决:cxGrid可以解决如下的表头: --------------------------------- | 说明1 | 说明2 | ---------------------------------

| 字段1 | 字段2 | 字段3 | 字段4 | | 字段5 | 字段6 | | 字段7 | 字段8 | 字段9 |

实现这个很简单,你可以直接在上面拖动字段名,拖动时会显示箭头的,放入你想显示的位置就OK了。或者在鼠标右击cxGrid1DBBandedTableView1菜单里的Edit Layout里也可以拖放。

但是cxGrid不能实现如下的多表头形式: ---------------------------------

| 说明1 | 说明2 | ---------------------------------

| 说明3 | 说明4 | 说明5 | 说明6 | | 字段1 | 字段2 | | 字段3 | 字段4 | 字段5 | 不知道有谁能实现这样的多表头?

18)在主从表结构时,当点开“+”时怎样将焦点聚在相应主表的记录上? 解决:

var

HitTest: TcxCustomGridHitTest;

procedure TColumnsShareDemoMainForm.tvProjectsMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin

// Note that the Sender parameter is a Site

HitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y); // The point belongs to the [+]/[-] button area

if HitTest is TcxGridExpandButtonHitTest then // Move focus to the record

TcxGridExpandButtonHitTest(HitTest).GridRecord.Focused := True; end;

19)CXGrid4如何展开全部节点

解决:GridDBTableView1.DataController.Groups.FullExpand;

2003-12-12 17:07:30 问题20

20)cxGrid如何动态创建Items的Editor的项?

cxGrid的列有一个属性,它的编辑框可以指定combobox,spinedit等.在设计时,可以为 combobox的items添加项目.请问是否可以动态创建?(run-time时由程序加入)

解决:

var

A:TDataSource:

B:TcxlookupcomboboxProperties; begin

A:=TDataSource.create(self);

B:=tcxlookupcomboboxproperties.create(self); A.Dataset:=Dic_ry_xb;//此处指定数据源。 b.listdource:=a;//此处指明字段的listsource属性。 b.keyfieldnames:='a'; //此处指明字段的关键字段

b.listfieldnames:='b'; //此处指明字段的返回值。

b.listcolumns.items[0].caption:='x; //此处默认是会建立一个字段,但是显示的表头是name,所以此处让它显示为自己想要的中午显示。

cxGrid1DBTableView1c1_sex_code.Properties:=b; //此处指明是那个字段。 end; //这个是初始化的代码,

2004-1-7 14:05:14 问题21

21)ExpressQuantumGrid4.5的汉化包

在这里可以下载ExpressQuantumGrid4.5的汉化包,将文件直接覆盖到源文件就可以了。

如何在dxMemData1或cxGrid1中动态添加字段?

Procedure TcxGridDBTableView.CreateDefaultColumn; //建立默认的列 //Add By Pgt Var

CxColumn:TcxGridDBColumn; FootItem:TcxDataSummaryItem;

i:Integer;

OldAutoWidth:Boolean; Begin

If Assigned(DataController.DataSource) And

Assigned(DataController.DataSource.DataSet) And DataController.DataSource.DataSet.Active Then Begin With DataController.DataSource.DataSet Do Begin While ColumnCount>0 Do Columns[0].Free ;

For i:=0 to FieldCount -1 Do Begin

If (Fields[i].DataType<>ftAutoInc) And (UpperCase(Fields[i].FullName)<>'ID') Then Begin CxColumn:=Self.CreateColumn ;

CxColumn.DataBinding.FieldName := Fields[i].FullName ; CxColumn.HeaderAlignmentHorz := taCenter ; CxColumn.HeaderAlignmentVert := VaCenter ;

If CxColumn.Width >150 Then CxColumn.Width := 150 ; If i=0 Then Begin

FootItem := DataController.Summary.FooterSummaryItems.Add ; FootItem.ItemLink :=CxColumn ; FootItem.Format := '共0条';

FootItem.Kind := skCount ; End Else Begin

If (Fields[i].DataType = ftFloat) And (Pos('价',Fields[i].FullName)=0) Then Begin FootItem := DataController.Summary.FooterSummaryItems.Add ; FootItem.ItemLink :=CxColumn ;

If Pos('数量',Fields[i].FullName)<>0 Then FootItem.Format := ',0;-,0' Else Begin

FootItem.Format := ',0.00;-,0.00' ; // '¥,0.00;-¥,0.00'; If CxColumn.Width<80 Then CxColumn.Width := 80 ; End;

FootItem.DisplayName := Fields[i].FullName ; FootItem.Kind := skSum ;

End;

End; End; End;

OldAutoWidth := Self.OptionsView.ColumnAutoWidth ; Self.OptionsView.ColumnAutoWidth := True ;

Self.OptionsView.ColumnAutoWidth := OldAutoWidth ; End; End; End;