delphi控件cxGrid用法大全(4)

来源:网络收集 时间:2025-07-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Self.tvResult.Items[i].ApplyBestFit; //调整为最佳宽度 Self.tvResult.EndUpdate; end;

//保存布局

IniFileName := ExtractFilePath(Application.ExeName) + 'Layout/' + Self.Name + '.ini'; if not DirectoryExists(ExtractFileDir(IniFileName)) then CreateDir(ExtractFileDir(IniFileName));

Self.tvResult.StoreToIniFile(IniFileName); //保存为布局文件 实例:

IniFileName: string;

procedure TMainFM.FormCreate(Sender: TObject); //窗体创建时读取布局 var i: Integer; begin

qyHed.Open;

IniFileName := ExtractFilePath(Application.ExeName) + '/Layout/' + cxGrd.Owner.ClassName + cxGrd.Name + '.ini'; if FileExists(IniFileName) then

Self.cxTbv.RestoreFromIniFile(IniFileName) //从布局文件中恢复 else begin

Self.cxTbv.BeginUpdate;

for i := 0 to Self.cxTbv.ItemCount - 1 do

Self.cxTbv.Items[i].ApplyBestFit; //调整为最佳宽度 Self.cxTbv.EndUpdate; end; end;

procedure TMainFM.NSaveGrdClick(Sender: TObject); //保存布局文件 begin try

IniFileName := ExtractFilePath(Application.ExeName) + '/Layout/' + cxGrd.Owner.ClassName + cxGrd.Name + '.ini'; if not DirectoryExists(ExtractFileDir(IniFileName)) then CreateDir(ExtractFileDir(IniFileName)); Self.cxTbv.StoreToIniFile(IniFileName); except end; end;

**************************************************************************** 28保存/恢复带汇总行的布局解决:

.StoreToIniFile('c:/Grid.ini', True, [gsoUseSummary]);

.RestoreFromIniFile(,True,False{or True,optional},[gsoUseSummary]); zj:本条与50条重复

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

(以下原博主转载自http://hi.http://www.wodefanwen.com//jangill/blog/item/2cf3c782f82f0798f703a67f.html) **************************************************************************** 28 在主从TableView中根据主TableView得到对应的从TableView 解决: var

ADetailDC: TcxGridDataController; AView: TcxCustomGridTableView; begin

with cxGrid1DBTableView1.DataController do

ADetailDC := TcxGridDataController(GetDetailDataController(FocusedRecordIndex, 0)); AView := ADetailDC.GridView; end;

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

cxDBVerticalGrid1.FocusedRow := cxDBVerticalGrid1.Rows[0]; cxDBVerticalGrid1.ShowEdit;

============================================================================== 30 隐藏 \字符串

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

uses cxClasses, cxGridStrs; ...

cxSetResourceString(@scxGridNoDataInfoText, ''); //如果\字符串已经显示,需要调用: .LayoutChanged;

============================================================ 31 删除应用过滤后的行 var I: Integer; begin

with do

for I := 0 to ViewData.RecordCount - 1 do begin

ViewData.Records[0].Focused := True; DataController.DataSet.Delete; end;

=============================================================

32 根据单元的值设置样式 解决:

procedure .StylesGetContentStyle(

Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin

if ARecord.Values[AItem.Index] = aSomeValue then AStyle := ; end;

procedure .StylesGetContentStyle(

Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var

AColumn: TcxCustomGridTableItem; begin

AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('Email'); if VarToStr(ARecord.Values[AColumn.Index]) = '' then AStyle := cxStyleNullEmail; end;

======================================================================

TcxCustomGridTableView.FindItemByName, TcxGridDBTableView.GetColumnByFieldName or TcxGridDBDataController.GetItemByFieldName

with cxGrid1DBBandedTableView1.DataController do

AValue := Values[FocusedRecordIndex, GetItemByFieldName('SomeFieldName').Index];

**************************************************************************** 33 动态生成BandedView 解决: var

AView: TcxCustomGridView; begin

AView := .CreateView(TcxGridDBBandedTableView);

TcxGridDBBandedTableView(AView).DataController.DataSource := ; TcxGridDBBandedTableView(AView).Bands.Add;

with TcxGridDBBandedTableView(AView).Bands.Add do begin

Visible := False; FixedKind := fkLeft; end;

TcxGridDBBandedTableView(AView).DataController.CreateAllItems;

.GridView := AView; end;

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

procedure

.Enter(Sender: TObject); var

View: TcxGridDBTableView; begin

View := TcxGridDBTableView((Sender as TcxGrid).FocusedView); if View.DataController.DataSet.IsEmpty then begin

View.DataController.DataSet.Append; View.Controller.EditingController.ShowEdit; end; end;

**************************************************************************** 35 在当前View插入记录 解决:

使用FocusedView属性得到当前焦点View,用View.DataController得到对应的Data Controller, 之后使用Data Controller的方法来操作数据: - Append - Insert - Post - Cancel - DeleteFocused - DeleteSelection 示例: var

ARecIndex: Integer; …

View.DataController.Append;

ARecIndex := View.DataController.FocusedRecordIndex;

View.DataController.Values[ARecIndex, SomeItemIndex] := SomeValue; View.DataController.Post;

另外一种方法是使用View.DataController.DataSource.DataSet得到底层数据集后,再用数据集的方法来操作数据。

**************************************************************************** 36 激活内置编辑控件 解决:

1) .Controller.EditingController.ShowEdit();

2) .Controller.EditingController.StartEditShowingTimer();

3) .Controller.EditingItem := ; 4) .Editing := True;

**************************************************************************** 37 隐藏内置编辑控件 解决:

.Controller.EditingController.HideEdit(True);

**************************************************************************** 38 移除一个分组列 解决:

.GroupIndex := -1; .Visible := True;

**************************************************************************** 39 保存修改到数据库 解决:

procedure .FormClose(Sender: TObject; var Action: TCloseAction); begin

if (.FocusedView <> nil)

and (.FocusedView.DataController.EditState <> []) then .FocusedView.DataController.Post; end;

**************************************************************************** 40 设置内置右键菜单 解决:

内置右键菜单包括二个菜单:cxGridStdHeaderMenu, TcxGridStdFooterMenu uses cxGridStdPopupMenu;

procedure TForm1.cxGridPopupMenu1Popup(ASenderMenu: TComponent;

AHitTest: TcxCustomGridHitTest; X, Y: Integer; var AllowPopup: Boolean); begin

if ASenderMenu is TcxGridStdHeaderMenu then

TcxGridStdHeaderMenu(ASenderMenu).OnPopup := StdHeaderMenuPopup; end;

procedure TForm1.StdHeaderMenuPopup(Sender: TObject); var

I: Integer; begin

with TcxGridStdHeaderMenu(Sender).Items do for I := 0 to Count - 1 do

if Items[I].Caption = 'Group By Box' then begin

Items[I].Enabled := False; System.Break; end

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库delphi控件cxGrid用法大全(4)在线全文阅读。

delphi控件cxGrid用法大全(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/460570.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219