当前位置:首页 > cxGrid的使用方法
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;
共分享92篇相关文档