• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DelphiCxGrid汇总(3)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

列  
解决:
      <aColumn>.GroupIndex   :=   -1;  
      <aColumn>.Visible   :=   True;
****************************************************************************
39 保存修改到数据库
解决:
procedure   <aForm>.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
begin  
if   (<aGrid>.FocusedView <> nil)
and   (<aGrid>.FocusedView.DataController.EditState <> []) then  
          <aGrid>.FocusedView.DataController.Post;  
end;
****************************************************************************
40 设置内置右键菜单
解决:
内置右键菜单包括二个菜单:cxGridStdHeaderMenu,   TcxGridStdFooterMenu  

[delphi] view plaincopy
  1. uses   cxGridStdPopupMenu;    
  2.      
  3. procedure   TForm1.cxGridPopupMenu1Popup(ASenderMenu:   TComponent;    
  4.       AHitTest:   TcxCustomGridHitTest;   X,   Y:   Integer;   var   AllowPopup:   Boolean);    
  5. begin    
  6.       if   ASenderMenu   is   TcxGridStdHeaderMenu   then    
  7.           TcxGridStdHeaderMenu(ASenderMenu).OnPopup   :=   StdHeaderMenuPopup;    
  8. end;    
  9.      
  10. procedure   TForm1.StdHeaderMenuPopup(Sender:   TObject);    
  11. var    
  12.       I:   Integer;    
  13. begin    
  14.       with   TcxGridStdHeaderMenu(Sender).Items   do    
  15.           for   I   :=   0   to   Count   -   1   do    
  16.               if   Items[I].Caption   =   'Group   By   Box'   then    
  17.               begin    
  18.                   Items[I].Enabled   :=   False;    
  19.                   System.Break;    
  20.               end    
  21. end;  

****************************************************************************
41 得到选中记录的值
解决:

[delphi] view plaincopy
  1. 1)   View.DataController.DataModeController.GridMode   =   False时    
  2.      
  3.       RecIdx   :=   View.Controller.SelectedRecords[i].RecordIndex;    
  4.       ColIdx   :=   View.DataController.GetItemByFieldName(AFieldName).Index;    
  5.       OutputVal   :=   View.DataController.Values[RecIdx,   ColIdx];    
  6.      
  7.       //RecID   :=   View.DataController.GetRecordId(RecIdx);    
  8.       //OutputVal   :=   ADataSet.Lookup(View.DataController.KeyFieldNames,   RecID,   AFieldName);    
  9.      
  10. 2)   View.DataController.DataModeController.GridMode   =   True时    
  11.       Bkm   :=   View.DataController.GetSelectedBookmark(ASelectedRecordIndex);    
  12.       if   ADataSet.BookmarkValid(TBookmark(Bkm))   then    
  13.       begin    
  14.           ADataSet.Bookmark   :=   TBookmark(Bkm);    
  15.           OutputVal   :=   ADataSet.FieldByName(AFieldName).Value;    
  16.       end;    
  17.      
  18.       View.BeginUpdate;    
  19.       View.DataController.BeginLocate;    
  20.       try    
  21.           //   make   changes   here…    
  22.       finally    
  23.           View.DataController.EndLocate;    
  24.           View.EndUpdate;    
  25.       end;  

****************************************************************************
42 在GridMode禁用内置的右键Footer菜单
解决:
uses   cxGridStdPopupMenu;  
   
procedure   cxGridPopupMenuOnPopup(...)  
begin  
      if   (ASenderMenu   is   TcxGridStdFooterMenu)   and  
              <GridView>.DataController.DataModeController.GridMode   then  
          AllowPopup   :=   False;  
end;
****************************************************************************
43 主从表任何时候只能展开一个组
解决:

[delphi] view plaincopy
  1. procedure   TForm1.ADetailDataControllerCollapsin(  ADataController:  TcxCustomDataController;    
  2.   
  3. ARecordIndex:   Integer;  var   AAllow:   Boolean);    
  4. var    
  5.       I:   Integer;    
  6.       C:   Integer;    
  7. begin    
  8.       AAllow   :=   False;    
  9.       C   :=   0;    
  10.       for   I   :=   0   to   ADataController.RecordCount   -   1   do    
  11.       begin    
  12.           if   ADataController.GetDetailExpanding(I)   then    
  13.               Inc(C);    
  14.           if   C   >   1   then    
  15.               AAllow   :=   True;    
  16.         end;    
  17. end;    
  18.      
  19. procedure   TForm1.ADetailDataControllerExpanding(    
  20.       ADataController:   TcxCustomDataController;   ARecordIndex:   Integer;    
  21.       var   AAllow:   Boolean);    
  22. begin    
  23.       ADataController.CollapseDetails;    
  24. end;    
  25.      
  26. procedure   TForm1.FormCreate(Sender:   TObject);    
  27. begin        cxGrid1DBTableView1.DataController.OnDetailExpanding:=ADetailDataControllerExpanding;         cxGrid1DBTableView1.DataController.OnDetailCollapsing:=ADetailDataControllerCollapsing;    
  28. end;  
  29. ****************************************************************************  
  30. 44 动态创建层次(Level)和视图(View)  
  31. 解决:  
  32. var        
  33.       Grid:   TcxGrid;        
  34.       Level:   TcxGridLevel;        
  35.       View:   TcxGridDBTableView;        
  36. begin    

  37. 鲜花

    握手

    雷人

    路过

    鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中的消息处理发布时间:2022-07-18
下一篇:
delphi修改文件夹名和文件名发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap