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;
****************************************************************************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;
b. keyfieldnames:= 'a' ;
b. listfieldnames:= 'b' ;
b. listcolumns . items[ 0 ].caption:='x;
cxGrid1DBTableView1c1_sex_code. Properties:=b;
end ;
****************************************************************************21. 拷贝文件时有进度显示 解决:
procedure TForm1 . mycopyfile(sourcef,targetf: string );
var
FromF, ToF: file ;
NumRead, NumWritten: Integer;
Buf: array [ 1..2048 ] of Char;
n:integer ;
begin
AssignFile(FromF, sourcef);
Reset(FromF, 1 );
AssignFile(ToF,targetf);
Rewrite(ToF, 1 );
n:=0 ;
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
form1. label1 . caption:=IntToStr(sizeof(buf)*n* 100 div FileSize(FromF))+ '100%' ;
application. ProcessMessages;
BlockWrite(ToF, Buf, NumRead, NumWritten);
inc(n);
until (NumRead = 0 ) or (NumWritten <> NumRead);
form1. Label1 . Caption:= '100%' ;
CloseFile(FromF);
CloseFile(ToF);
end ;
procedure TForm1 . Button1Click(Sender: TObject);
begin
mycopyfile('e:/components/tv2k-w2k.zip' , 'c:/a.zip' );
end ;
****************************************************************************22. cxGrid 设置斑马线 解决:
在TcxGridDBBandedTableView.Styles属性中有 ContentEven(奇数行风格) ContentOdd (偶数行风格) ,设定一下风格就好了。
****************************************************************************23 根据记录内容更改字体颜色 解决:
参考范例CustomDrawTableViewDemo,
主要在TcxGridDBBandedTableView.OnCustomDrawCell事件中实现。
如下代码:
if (Pos('-',AViewInfo.GridRecord.DisplayTexts[colOrderProductCount.Index]) > 0) then
begin //标识负数记录
//ACanvas.Canvas.Brush.Color:= clMoneyGreen;
ACanvas.Canvas.Font.Color:= clRed;//clActiveCaption
end;
其中colOrderProductCount是“产品订数”列。
还要有一步就是要刷新显示
TcxGridDBBandedTableView.LayoutChanged();
//tvCars.LayoutChanged(False);
TcxGridDBBandedTableView.Painter.Invalidate;
****************************************************************************24 用代码展开/收缩主从结构 解决:
Self.tvDepartment.ViewData.Expand(True);
Self.tvDepartment.ViewData.Collaspe(True);
注:tvDepartment为主表对应的TableView
****************************************************************************25 在内置右键菜单的后面增加菜单项 解决:
首先应在Form上加一个cxGridPopupMenu控件 以启用右键菜单
UseBuildInPopupMenus设为True
procedure TFormItemList . FormCreate(Sender: TObject);
var
AMenu: TComponent;
FMenuItem, FSubMenuItem: TMenuItem;
begin
AMenu := nil ;
if cxGridPopupMenu . BuiltInPopupMenus . Count = 0 then
Exit;
AMenu := cxGridPopupMenu. BuiltInPopupMenus[ 0 ].PopupMenu;
if Assigned(AMenu) and AMenu . InheritsFrom(TPopupMenu) then
begin
TPopupMenu(AMenu).AutoHotkeys := maManual;
FMenuItem := TMenuItem. Create(Self);
FMenuItem. Caption := '-' ;
FMenuItem. Name := 'miLineForGroup' ;
TPopupMenu(AMenu).Items. Add(FMenuItem);
FMenuItem := TMenuItem. Create(Self);
FMenuItem. Name := 'miExpandAllGroup' ;
FMenuItem. Caption := '展开所有组(&X)' ;
FMenuItem. OnClick := miExpandAllGroupClick;
TPopupMenu(AMenu).Items. Add(FMenuItem);
FMenuItem := TMenuItem. Create(Self);
FMenuItem. Name := 'miCollapseAllGroup' ;
FMenuItem. Caption := '收缩所有组(&O)' ;
FMenuItem. OnClick := miCollapseAllGroupClick;
TPopupMenu(AMenu).Items
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19247| 2023-10-27
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:10004| 2022-11-06
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8334| 2022-11-06
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8703| 2022-11-06
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8649| 2022-11-06
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9675| 2022-11-06
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8635| 2022-11-06
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:8008| 2022-11-06
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8671| 2022-11-06
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7542| 2022-11-06
请发表评论