StringGrid单元格绑定ComboBox、DateTimePicker或窗口传值

news/2024/11/14 14:56:10/文章来源:https://www.cnblogs.com/ynmsnc/p/18370032

一、初始化控件状态

复制代码
procedure TForm7.FormCreate(Sender: TObject);
beginwith StringGrid1 dobeginColWidths[0] := 15;Cells[1, 0] := 'Combobox';ColWidths[1] := 100;Cells[2, 0] := 'DateTimePicker';ColWidths[2] := 100;Cells[3, 0] := 'Form';ColWidths[3] := 100;end;ComboBox1.visible := False;DateTimePicker1.Visible := False;
end;
复制代码

二、选择单元格显示控件

复制代码
procedure TForm7.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
varR: TRect;org: TPoint;
beginif Form8 = nil thenApplication.CreateForm(TForm8, Form8);with Sender as TStringGrid dobegin//第一列if ACol = 1 thenbeginPerform(WM_CANCELMODE, 0, 0);R := CellRect(ACol, ARow);org := Self.ScreenToClient(ClientToScreen(R.topleft));with ComboBox1 dobeginSetBounds(org.X, org.Y, R.right - R.left, Height);itemindex := Items.IndexOf(Cells[ACol, ARow]);Show;BringToFront;SetFocus;DroppedDown := True;end;end;if ACol = 2 thenbeginPerform(WM_CANCELMODE, 0, 0);R := CellRect(ACol, ARow);org := Self.ScreenToClient(ClientToScreen(R.topleft));with DateTimePicker1 dobeginSetBounds(org.X, org.Y, R.right - R.left, Height);if Cells[ACol, ARow] <> '' thenDate := StrToDate(Cells[ACol, ARow]);Show;BringToFront;SetFocus;end;end;if ACol = 3 thenbeginPerform(WM_CANCELMODE, 0, 0);Form8.Caption := VarToStr(ARow) + '-' + VarToStr(ACol);Form8.ShowModal;with StringGrid1 doStringGrid1.cells[ACol, ARow] := Form8.Caption;end;end;
end;
复制代码

三、DateTimePicker1失去焦点

复制代码
procedure TForm7.DateTimePicker1Exit(Sender: TObject);
beginwith Sender as TDateTimePicker dobeginHide;with StringGrid1 docells[Col, Row] := DateToStr(DateTimePicker1.Date);end;
end;
复制代码

四、ComboBox1失去焦点

复制代码
procedure TForm7.ComboBox1Exit(Sender: TObject);
beginwith Sender as TComboBox dobeginHide;if itemindex >= 0 thenbeginwith StringGrid1 docells[Col, Row] := items[itemindex];end;end;
end;
复制代码

效果展示

Demo下载

本文来自博客园,作者:liessay,转载请注明原文链接:https://www.cnblogs.com/liessay/p/16228372.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/784434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Next-支付宝SDK接入教程

App适配鸿蒙Next,开始做支付功能了,目前来说只有支付宝支持鸿蒙Next,微信还没上架,但是支付宝官方的文档跟Demo都很老,下载官方的Demo用最新版的DevEco-Studio导入都不成功。 后面在OpenHarmony三方库中心仓找到了最新的代码:https://ohpm.openharmony.cn/#/cn/detail/@c…

java 11

输出二维数组: public class erwei{ public static void main(String[] args){ int [][]arr={{0,0,0,0,0,0}, {,0,0,1,0,0,0}, {0,2,0,0,3,0}, {0,0,0,0,0,0}}; for(int i=0;i<arr.length;i++){ for (int j=0;j<arr[i].length ;j++ ) { System.out.print(arr[i][j]+&quo…

粒子群优化函数--particleswarm函数的用法与讨论

particleswarm函数是matlab自带的粒子群优化算法,其使用自适应的邻域模式搜索最优解,比我们之前自己写的代码要好得多,本章我们来讨论一下其思想与参数设置 目录一、自适应的邻域模式1.全局模式与邻域模式2.全局模式的优劣3.邻域模式的优劣4.何为“自适应”二、预设参数的选…

FLink1.17-Kafka实时同步到MySQL实践

1.组件版本组件版本Kafka3.7.0Flink1.17.0MySQL8.0.32 2.Kafka生产数据 ./kafka-console-producer.sh --broker-list hadoop01:9092,hadoop02:9092,hadoop03:9092 --topic kafka_test_table2 >{"id":123,"test_age":33} >{"id":125,&…

[Paper Reading] Reconstructing Hands in 3D with Transformers

名称 Reconstructing Hands in 3D with Transformers 时间:CVPR2024 机构:UC Berkeley, University of Michigan, New York University TL;DR 本文提出一种使用Transformer来做Hand Tracking的算法名为HaMeR(Hand Mesh Recorvery),优势是大数据规模(利用多数据集的2D/3D标签…

“就是打一打”清华程思元打出百度之星20年史上罕见两连冠

8月18日,被称为“技术界奥斯卡”的2024百度之星程序设计大赛(以下简称“百度之星” )落下帷幕。近千人同场敲代码、中学生几乎垄断奖项、背靠背冠军诞生……百度之星像中国编程次世代的技术嘉年华,越来越多人加入其中。近千学霸角逐“编程奥斯卡”,初小学生比例创新高 百度…

企业级Scrum敏捷赋能课程:为企业量身定制的敏捷开发培训,旨在提升团队协作与项目交付能力,实现敏捷管理的落地。

​ ​ 课程简介: Scrum 是一种广泛应用的敏捷开发方法,用于项目管理和产品研发。该课程为期两天,专为研发管理者、项目经理、产品经理和研发团队设计。通过案例讲解和沙盘演练,学员将深入理解Scrum的核心理念,如产品价值驱动、以用户为中心、快速迭代和增量交付,掌握自管…

使用对比!SLS 数据加工 SPL 与旧版 DSL 场景对照

这里我们继续讨论在不同的数据处理需求中,新版数据加工 SPL 与旧版数据加工 DSL 的使用对照。对于数据同步的场景,即不需要做任何数据处理,新版 SPL 与旧版 DSL 均传入空逻辑即可,以下不再赘述。作者:灵圣 概述 如前一篇《SLS 数据加工全面升级,集成 SPL 语法》所述,SLS…

Jenkins与gitlab持续集成配置webhook报500错误

Hook execution failed: Failed to open TCP connection to localhost:8585 (Connection refused - connect(2) for "localhost" port 8585) 在点击push events进行测试Jenkins时,出现上图,是因为gitlab没有打开一项权限,做如下设置即可

在孩子成长路上,爱与智慧的陪伴是送给孩子最好的礼物

如今智能设备的普及、社交媒体的兴起和娱乐方式的碎片化,使我们时刻被各种信息和刺激包围,这种环境对正处于成长期的儿童影响尤为显著,他们更容易被快节奏、高刺激的内容吸引,导致专注力下降,从而影响学习和认知能力的发展。针对这一现实挑战,数业智能心大陆推出了AI儿童…

TXT 记录解析怎么做?

在当今数字化的时代,网络技术的应用越来越广泛,而域名系统(DNS)则是网络通信中至关重要的一部分。TXT 记录作为 DNS 中的一种记录类型,有着特定的用途和解析方法。 那么,TXT 记录解析究竟该怎么做呢? 一、了解 TXT 记录的概念 TXT 记录,即文本记录,是一种可以存储任意…

Kubernetes基础命令

Kubernetes 提供 kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。 这个工具叫做 kubectl。 针对配置信息,kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 你可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指…