当前位置: 首页 > news >正文

delphi cxgrid + PopupMenu 创建智能过虑功能的菜单

先看效果图

test2

设置cxgrid视图的OnMouseDown事件即可实现

procedure TfraModuleCPRK.GridView2MouseDown(Sender: TObject; Button:TMouseButton; Shift: TShiftState; X, Y: Integer);
varHT: TcxCustomGridHitTest;
begin  //菜单仅在记录内显示with TcxGridSite(Sender) dobeginHT := ViewInfo.GetHitTest(X, Y);if (HT is TcxGridRecordHitTest) and (数据来源.Text = '近期入库') thenbegin//加载P1子菜单if p1.Count = 0 thenbeginvar fq := TFDQuery.Create(nil);fq.Connection := Dm.FDConnection1;fq.sql.Text :='select ID,日期区间 FROM DateRange where 启用状态=-1 order by 权重 DESC,ID';tryfq.Open();if fq.IsEmpty thenbeginUWPInfoMessage('提示', 'DateRange 未配置,请检查');Exit;end;fq.First;while not fq.Eof dobeginvar SubMenuItem := TMenuItem.Create(p1);SubMenuItem.Caption := fq.FieldByName('日期区间').AsString; // 设置显示文本SubMenuItem.Tag := fq.FieldByName('ID').AsInteger;  // 存储 IDSubMenuItem.OnClick := P1MenuItemClick; // 设置点击事件p1.Add(SubMenuItem);// 添加到 p1 菜单项// 设置单选组SubMenuItem.RadioItem := True;SubMenuItem.GroupIndex := 1;  // 同一组的索引相同
fq.Next;end;finallyfq.free;end;end;// 确保有焦点行和焦点列if (GridView2.Controller.FocusedRowIndex >= 0) and(GridView2.Controller.FocusedColumn <> nil) thenbeginvar ARowIndex := GridView2.Controller.FocusedRecordIndex; // 焦点行索引var AColIndex := GridView2.Controller.FocusedColumn.Index; // 焦点列索引// 获取单元格的值var CellValue := VarToStr(GridView2.DataController.GetValue(ARowIndex,AColIndex));p2.Caption := '等于 ' + CellValue;p3.Caption := '不等于 ' + CellValue;GridView.PopupMenu := PopupMenu2;endelseGridView.PopupMenu := nil;end;end;
end;

菜单的点击事件在这里:

delphi 慎用split - 一曲轻扬 - 博客园 (cnblogs.com)

http://www.jsqmd.com/news/722844/

相关文章:

  • DreamOmni3:涂鸦引导的多模态AI图像处理框架解析
  • 纳米无人机自主导航技术:SWaP约束下的创新突破
  • HardSecBench:LLM硬件代码安全评估框架解析
  • LoongFlow:从暴力搜索到因果推理的进化智能突破
  • 从‘食べる’到‘食べさせられる’:一个动词的‘一生’,带你彻底理解日语动词的11种形态
  • LangChain与提示工程实战:构建AI智能体工作流
  • 茉莉花插件:中文文献元数据抓取与PDF大纲生成的终极指南
  • 2026年Q2成都托福培训权威机构核心技术维度解析 - 优质品牌商家
  • 2026年河南护理类大专排名:大专有那些学校,护理专业公办大专,护理专业怎么样,护理专业招生,优选推荐! - 优质品牌商家
  • Godot卡牌游戏框架:数据驱动与模块化设计实践
  • 构建自然对话AI语音助手:Discord机器人集成VAD、STT与TTS实战
  • 基于AI的网页内容自动化转视频技术解析
  • LLM如何革新游戏开发:自动生成与评估技术解析
  • 2026年q2国内主流搬家公司电话品牌盘点:最近的湛江搬家公司,湛江搬家公司哪家最好,实力盘点! - 优质品牌商家
  • 【2026年华为暑期实习-非AI方向(通软嵌软测试算法数据科学)-4月29日-第二题- 文件目录的分层压缩】(题目+思路+JavaC++Python解析+在线测试)
  • C++超详细梳理基础知识
  • 2026蓬安县装修公司品牌选型:6个硬核技术鉴别维度 - 优质品牌商家
  • 光学计算与多通道处理架构的技术解析
  • BBC Simorgh:React+Node.js构建现代化新闻渲染引擎的架构解析
  • 为什么92%的Swoole-LLM项目在压测第3小时崩溃?揭秘EventLoop阻塞+Token流缓冲区溢出的双重陷阱
  • 数据库查询避免深分页问题
  • 427-evo tmux
  • 从CCPC河南省赛的“随机栈”题,聊聊贪心策略与模998244353的逆元处理技巧
  • Horos:免费开源医疗影像软件的完整指南与专业应用
  • 创智芯联冲刺港股:年营收6.4亿 姚成控制67%投票权
  • 医疗AI研究新突破:MedResearcher-R1框架解析
  • ComfyUI IPAdapter Plus技术架构解析:图像条件生成的高级实现方案
  • C#高性能ECS框架Arch:Archetype+Chunk模式与数据驱动设计实战
  • 低成本开源3D打印机械手设计与实现
  • ShellGPT:基于大语言模型的智能命令行助手原理与实践