delphi控件cxGrid用法大全1.docx

上传人:b****4 文档编号:5040746 上传时间:2023-05-07 格式:DOCX 页数:34 大小:33.37KB
下载 相关 举报
delphi控件cxGrid用法大全1.docx_第1页
第1页 / 共34页
delphi控件cxGrid用法大全1.docx_第2页
第2页 / 共34页
delphi控件cxGrid用法大全1.docx_第3页
第3页 / 共34页
delphi控件cxGrid用法大全1.docx_第4页
第4页 / 共34页
delphi控件cxGrid用法大全1.docx_第5页
第5页 / 共34页
delphi控件cxGrid用法大全1.docx_第6页
第6页 / 共34页
delphi控件cxGrid用法大全1.docx_第7页
第7页 / 共34页
delphi控件cxGrid用法大全1.docx_第8页
第8页 / 共34页
delphi控件cxGrid用法大全1.docx_第9页
第9页 / 共34页
delphi控件cxGrid用法大全1.docx_第10页
第10页 / 共34页
delphi控件cxGrid用法大全1.docx_第11页
第11页 / 共34页
delphi控件cxGrid用法大全1.docx_第12页
第12页 / 共34页
delphi控件cxGrid用法大全1.docx_第13页
第13页 / 共34页
delphi控件cxGrid用法大全1.docx_第14页
第14页 / 共34页
delphi控件cxGrid用法大全1.docx_第15页
第15页 / 共34页
delphi控件cxGrid用法大全1.docx_第16页
第16页 / 共34页
delphi控件cxGrid用法大全1.docx_第17页
第17页 / 共34页
delphi控件cxGrid用法大全1.docx_第18页
第18页 / 共34页
delphi控件cxGrid用法大全1.docx_第19页
第19页 / 共34页
delphi控件cxGrid用法大全1.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

delphi控件cxGrid用法大全1.docx

《delphi控件cxGrid用法大全1.docx》由会员分享,可在线阅读,更多相关《delphi控件cxGrid用法大全1.docx(34页珍藏版)》请在冰点文库上搜索。

delphi控件cxGrid用法大全1.docx

delphi控件cxGrid用法大全1

delphi中exGrid使用汇总

(一)

1.去掉exGrid中台头的Box

解决:

在tableviewl的ptionsview的groupbybox二false;

2•统计功能

解决:

⑴tableviewtableview1的optionsviewfooter=ture

然后在cxGRid1的customize..中的summary的需要合计的列kind二skSum在Footer的第一列显示[合计:

]?

加一个Summary项,Column设为Grid的第一列,Kind设为skNone?

在该Summary项的OnGetText事件中,输入:

procedure(?

Sender:

TcxDataSummaryltem;constAValue:

Variant;AIsFooter:

Boolean;?

varAText:

String);?

begin?

AText:

='合计:

';?

end;

事件中,输入:

?

(2)按条件汇总:

在TableView的DataController->Summary->FooterSummary->OnSummaryprocedure(?

ASender:

TcxDataSummaryItems;Arguments:

TcxSummaryEventArguments;?

varOutArguments:

TcxSummaryEventOutArguments);?

begin?

ieldName;?

.RecordIndex,]>1)ind=skSum)then?

:

=0;怎样实现如EXCEL一样的,当前格二G14+G15+G16这样的功能

****************************************************************************

10.鼠标右击cxGrid1DBBandedTableView1菜单里的EditLayout什么用,怎么使用

拖动时会显示箭头的,就是说可以拖一个字段放

解决:

可以拖动字段,并列的可以拖成有层次感(一层层),

11.怎样将exGrid里的数据导入到EXCEL,HTML,XML和TEXT

解决:

uses

exExportGrid4Link;(exExportGrid6Link)

procedure(Sender:

TObject);

begin

ExportGrid4ToEXCEL('d:

/',cxGrid1,True,True);

ExportGrid4ToTEXT('d:

/',cxGrid1,True,True);

ExportGrid4ToXML('d:

/',cxGrid1,True,True);

ExportGrid4ToHTML('d:

/',cxGrid1,True,True);

end;

****************************************************************************

12.如何使满足条件的数据显示不同的颜色

解决:

var

AYellowStyle:

TcxStyle;

procedure(Sender:

TObject);

begin

如何从外边的TXT文件导入到cxGrid

解决:

procedureCustomizeColumns;

procedureLoadData;

procedure;

const

cDistance=1;

cRadius=5;

cPeriod=4;

cPstring=0;

var

I:

Integer;

begin

DecimalSeparator:

='.';

withcxGrid1TableView2doforI:

=0toColumnCount-1do

ifIin[cDistance,cRadius]then

Columns[l].:

=TcxlntegerValueType:

二TcxStringValueType:

二TcxFloatValueType;xt';

AHeaderLineCount=2;

var

ARecords,AValues:

TStringList;

I:

Integer;

procedureInitRecord(constStr:

string);

var

J:

Integer;

V:

Variant;

begin

:

=Str;

forJ:

=0to-1do

if[J]<>'-'then

begin

V:

=[J];

ifnotVarIsNull(V)then

end;

end;

begin

ifnotFileExists(AFileName)then

raise('Datafilenotfound');

ARecords:

=;

AValues:

=;

withARecordsdo

try

LoadFromFile(AFileName);

forI:

=0toCount-(AHeaderLineCount+1)do

InitRecord(Strings[I+AHeaderLineCount]);

finallyend;

end;

procedure(Sender:

TObject);

begin

CustomizeColumns;

LoadData_Zcfz;end;

****************************************************************************

14如何改变列的颜色?

解决:

var

AFirstColumnStyle:

TcxStyle;

procedure(Sender:

TObject);

begin

:

=AFirstColumnStyle;

end;

****************************************************************************

15Setasdefault的用法?

解决:

Setasdefault的用法是为了解决设置参数的方便而做的,比如:

连好数据库以后,更改cxGrid1DBBandedTableView1->OptionsCustomize->ColumnFiltering设为False。

(这个设置可以将字段名的

下拉单给去掉)更改cxGrid1DBBandedTableView1->OptionsView->Navigator设置为True。

然后右击cxGrid1DBBandedTableView1,

在弹出的菜单栏里面点击Setasdefault。

OK,下次你再产生一个新的cxGrid1DBBandedTableView1时这些设置和刚才的一样了。

如果需要设置的参数很多的时候,这个Setas

default很有用!

****************************************************************************

16.怎样使鼠标移动时,相应的单元里的文字变色?

解决:

var

FTrackItem:

TcxCustomGridTableltem;

FTrackRec:

TcxCustomGridRecord;

procedure(

Sender:

TcxCustomGridTableView;ACanvas:

TcxCanvas;

AViewlnfo:

TcxGridTableDataCellViewlnfo;varADone:

Boolean);begin

if=FTrackRec)and=FTrackltem)then

begin

end;

end;

procedure(Sender:

TObject;

Shift:

TShiftState;X,Y:

Integer);

var

AHitTest:

TcxCustomGridHitTest;

ATrackltem:

TcxCustomGridTableltem;

ATrackRec:

TcxCustomGridRecord;

begin

ATrackltem:

=FTrackltem;

ATrackRec:

=FTrackRec;

ifAHitTestisTcxGridRecordCellHitTestthen

begin

FTrackltem:

=TcxGridRecordCellHitTest(AHitTest).ltem;

FTrackRec:

=TcxGridRecordCellHitTest(AHitTest).GridRecord;endelse

begin

FTrackltem:

=nil;

FTrackRec:

=nil;

end;

if(ATrackltem<>FTrackltem)or(ATrackRec<>FTrackRec)thenbegin

怎样设计多表头的cxGrid?

解决:

cxGrid可以解决如下的表头:

|说明1|说明2|

|字段1|字段2|字段3|字段4|

|字段5|字段6||字段7|字段8|字段9|

OK了。

或者在鼠标右击

实现这个很简单,你可以直接在上面拖动字段名,拖动时会显示箭头的,放入你想显示的位置就

cxGridIDBBandedTableViewl菜单里的EditLayout里也可以拖放。

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

|说明1|说明2|

|说明3|

说明4|说明5|说明6|

|字段1|

字段2|

|字段3|

字段4|字段5|

不知道有谁能实现这样的多表头

****************************************************************************

18.在主从表结构时,当点幵“+”怎样将焦点聚在相应主表的记录上?

解决:

var

HitTest:

TcxCustomGridHitTest;procedure(Sender:

TObject;

Button:

TMouseButton;Shift:

TShiftState;X,Y:

Integer);

begin

:

=True;

end;

****************************************************************************

19CXGrid4如何展开全部节点

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

解决:

cxGrid的列有一个属性,它的编辑框可以指定combobox,spinedit等.在设计时,可以为

combobox的items添加项目.请问是否可以动态创建(run-time时由程序加入)

var

A:

TDataSource:

B:

TcxlookupcomboboxProperties;

begin

A:

=(self);

B:

=(self);

=Dic_ry_xb;1c拷贝文件时有进度显示

解决:

procedure(sourcef,targetf:

string);

var

FromF,ToF:

file;

NumRead,NumWritten:

Integer;

Buf:

array[1..2O48]ofChar;

n:

integer;

begin

AssignFile(FromF,sourcef);

Reset(FromF,1);{Recordsize=1}

AssignFile(ToF,targetf);{Openoutputfile}

Rewrite(ToF,1);{Recordsize=1}

n:

=0;

repeat

BlockRead(FromF,Buf,SizeOf(Buf),NumRead);

cxGrid设置斑马线

解决:

在属性中有ContentEven(奇数行风格)ContentOdd(偶数行风格),设定一下风格就好了

****************************************************************************

23根据记录内容更改字体颜色

解决:

参考范例CustomDrawTableViewDemo,

主要在事件中实现。

如下代码:

hen

beginopupMenu;utoHotkeys:

=maManual;FMenultem);?

FMenultem);?

?

FMenultem);?

?

FMenultem);?

?

FMenultem);?

?

FMenultem);?

?

44);-1;FMenultem);?

?

FMenultem);?

?

37);?

:

=TPopupMenu(AMenu).-1;?

:

二'导出(&E)';?

:

=;?

TPopupMenu(AMenu).(FMenultem);?

?

14);?

:

=TPopupMenu(AMenu).-1;?

:

=;?

TPopupMenu(AMenu).(FMenultem);?

end;?

end;?

?

procedure(Sender:

TObject);?

var?

FileName,FileExt,msg:

String;?

begin?

?

begin?

msg:

='没有导出数据…';?

(PChar(msg),PChar,?

MB_OKorMB_lconWarning);?

Exit;?

end;?

?

ml'?

+'|文本文件(*txt)|*txt|网页文件(*html)|*html';?

?

?

?

Exit;?

?

?

FileExt:

=LowerCase(ExtractFileExt(FileName));?

ifFileExt='.xls'then?

ExportGrid4ToExcel(FileName,?

elseifFileExt='.xml'then?

ExportGrid4ToXML(FileName,?

elseifFileExt='.txt'then?

ExportGrid4ToText(FileName,?

elseifFileExt='.html'then?

ExportGrid4ToHTML(FileName,?

else?

begin?

msg:

='不支持的导出文件类型...';?

(PChar(msg),PChar,?

MB_OKorMB_IconError);?

Exit;?

end;?

?

msg:

='导出完成...';?

(PChar(msg),PChar,?

MB_OKorMB_Iconlnformation);?

end;?

?

procedure(Sender:

TObject);?

begin?

isible:

=True;?

TMenultem('miExpandAIIGroup')).Visible:

=True;?

TMenultem('miCollapseAIIGroup')).Visible:

=True;?

end?

else?

begin?

TMenultem('miLineForGroup')).Visible:

=False;?

TMenultem('miExpandAIIGroup')).Visible:

=False;?

TMenultem('miCollapseAIIGroup')).Visible:

=False;?

end;?

end;?

end;?

?

procedure(Sender:

TObject);?

begin?

ni';?

ifFiIeExists(IniFileName)then?

leName)ni';?

ifnotDirectoryExists(ExtractFiIeDir(IniFileName))then?

CreateDir(ExtractFiIeDir(IniFileName));?

保存为布局文件

实例:

IniFileName:

string;

procedure(Sender:

TObject);toreToIniFile('c:

/',True,[gsoUseSummary]);?

.RestoreFromIniFile(vinifilename>,True,False{orTrue,optional},[gsoUseSummary]);

zj:

本条与50条重复

(以下原博主转载自)

****************************************************************************

28在主从TableView中根据主TableView得到对应的从TableView

解决:

var?

ADetailDC:

TcxGridDataController;?

AView:

TcxCustomGridTableView;?

begin?

withdo?

ADetailDC:

=TcxGridDataController(GetDetailDataController(FocusedRecordlndex,0));?

AView:

=;?

end;

29定位在第一行并显示内置编辑器

:

=[0];

30隐藏"

该文本存储在scxGridNoDataInfoText资源字符串,可以将该资源字符串的内容设为空

来隐藏该文本。

usescxClasses,cxGridStrs;

cxSetResourceString(@scxGridNoDatalnfoText,”);

ayoutChanged;

31删除应用过滤后的行

var

I:

Integer;

begin

withdo

forI:

=0to-1do

begin

[0].Focused:

=True;

DataControlle

end;

=============================================================?

32根据单元的值设置样式?

解决:

procedurevaForm>.vaColumn>StylesGetContentStyle(?

Sender:

TcxCustomGridTableView;ARecord:

TcxCustomGridRecord;?

Altem:

TcxCustomGridTableItem;outAStyle:

TcxStyle);?

begin?

if[]=aSomeValuethen?

AStyle:

=vaSomeStyle>;?

end;?

?

procedurevaForm>.vaView>StylesGetContentStyle(?

Sender:

TcxCustomGridTableView;ARecord:

TcxCustomGridRecord;?

AItem:

TcxCustomGridTableItem;outAStyle:

TcxStyle);?

var?

AColumn:

TcxCustomGridTableItem;?

begin?

AColumn:

=(SenderasTcxGridDBTableView).GetColumnByFieldName('Email');?

ifVarToStr[])=''then?

AStyle:

=cxStyleNullEmail;?

end;?

?

?

or?

?

?

withdo?

AValue:

=Values[FocusedRecordIndex,GetltemByFieldName('SomeFieldName')」ndex];?

?

****************************************************************************

33动态生成BandedView

解决:

var?

AView:

TcxCustomGridView;?

AView:

=vcxGrid>.CreateView(TcxGridDBBandedTableView);?

TcxGridDBBandedTableView(AView).:

=;?

TcxGridDBBandedTableView(AView).;?

withTcxGridDBBandedTableView(AView).do?

begin?

Visible:

=False;?

FixedKind:

=fkLeft;?

end;?

TcxGridDBBandedTableView(AView).;?

vcxGridLeveAGridView:

=AView;

end;

****************************************************************************

34当底层数据集为空时显示一条空记录

解决:

procedure.vcxGrid>Enter(Sender:

TObject);?

var?

View:

TcxGridDBTableView;?

begin?

View:

=TcxGridDBTableView((SenderasTcxGrid).FocusedView);?

?

begin?

?

?

end;?

end;

***********************

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2