如何同时读取 TDateTimePicker 的 Date 和 Time ?
由于 TDateTimePicker 只能用于日期或时间,不能同时使用。如果将Kind属性设置为dtkDate,则可以指定自定义DATE格式,但忽略任何TIME格式,并且Time未定义使用该属性。如果将Kind属性设置为dtkTime,则可以指定自定义TIME格式,但忽略任何DATE格式,并且Date未定义使用该属性。虽然通过设置 Format = 'yyyy/MM/dd HH:mm:ss' 可以显示日期和时间,但读取到 DateTime 的值是初始化前的,无法正确读取出日期和时间。
很多时候,需要同时显示日期和时间,又不想使用两个控件组合显示,如何实现呢?
方法一:通过修改 TDateTimePicker 的源码实现,打开 Vcl.ComCtrls.pas 大约 28144 行:
- procedure TDateTimePicker.CNNotify(var Message: TWMNotifyDT);
- try
- DT := SystemTimeToDateTime(st);
- if Kind = dtkDate then
- SetDate(DT)
- else
- SetTime(DT);
- // 增加一行
- SetDateTime(DT);
- finally
- FChanging := False;
- end;
然后重新编译这个单元,生成dcu文件,替换原有的,或者是将这个修改的单元添加到自己的工程中。
方法二:基于TDateTimePicker派生新的控件。
- unit uZDateTimePicker;
- interface
- uses
- Vcl.ComCtrls, SysUtils;
- type
- TZDateTimePicker = class(TDateTimePicker)
- private
- procedure SetDateAndTime;
- protected
- procedure Change; override;
- end;
- implementation
- { TZDateTimePicker }
- procedure TZDateTimePicker.Change;
- begin
- SetDateAndTime
- end;
- procedure TZDateTimePicker.SetDateAndTime;
- begin
- DateTime := StrToDateTime(Caption);
- inherited;
- end;
- end.
方法三:通过读取TDateTimePicker私有属性实现。
- // this class is just to access protected Caption property
- THackDateTimePicker = class(TDateTimePicker);
这样使用
- procedure TForm1.DateTimePicker1Change(Sender: TObject);
- begin
- TDateTimePicker(Sender).DateTime := StrToDateTime(THackDateTimePicker(Sender).Caption);
- end;
上面三种方法各有优缺点,我个人更喜欢第三种。
如何同时读取 TDateTimePicker 的 Date 和 Time ?的更多相关文章
- TDateTimePicker中Date与Time的误导
Delphi DateTime,Date,Time TDateTimePicker DateTimeDateTimeDateTimePicker 一.DateTime,Date,Time存储方式本质上 ...
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
今天在做项目过程中,查询一个表中数据时总碰到这个问题: java.sql.SQLException:Value '0000-00-00' can not be represented as ...
- java jxl读取excel中Date类型
Workbook book = Workbook.getWorkbook(excel); Sheet sheet = book.getSheet(0); int clos = sheet.getCol ...
- 读取hdfs目录,并在web页面上展示文件里的内容
最终效果图 目录树实体类: /** * @Author: DaleyZou * @Description: hdfs 目录结构的实体类,用于展示目录树的支撑操作 * @Date: Created in ...
- Java -- Properties类使用 读取配置文档
Java-Properties类的使用 分类: Java基础 2007-05-11 19:35 2666人阅读 评论(1) 收藏 举报 propertiesxmlimportexceptionstri ...
- spark读写Oracle、hive的艰辛之路(二)-Oracle的date类型
近期又有需求为:导入Oracle的表到hive库中: 关于spark读取Oracle到hive有以下两点需要说明: 1.数据量较小时,可以直接使用spark.read.jdbc(orclUrl,tab ...
- linux:date 计算一组命令所花费的执行时间
date 命令可以用于计算一组命令所花费的执行时间 可以以不同的格式来读取.设置日期. (1) 读取日期: $ date Thu May 20 23:09:04 IST 2010 (2) 打印纪元时: ...
- TEC-004-php文件下载任意文件读取漏洞修复
修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd functi ...
- shell-bash学习03 别名、日期、函数
别名 使用alias 创建 alias new_command='command sequence' 保存 echo 'alias cmd="command seq"' >& ...
随机推荐
- pipelinewise 基于singer 指南的的数据pipeline 工具
pipelinewise 是基于开源singer 指南开发的数据pipeline工具,与singer tap 以及target 兼容 支持的特性 内置的elt 特性 轻量级 支持多种复制方法,cdc( ...
- webpack资源管理
一.概况 ①webpack不仅可以打包JavaScript模块,甚至它把网页开发中的一切资源的都可以当作模块来打包处理 ②但是webpack本身不支持,它只是一个打包平台,其他资源,例如css.les ...
- Android Studio软件技术基础 —Android项目描述---1-类的概念-android studio 组件属性-+标志-Android Studio 连接真机不识别其他途径
学习android对我来说,就是兴趣,所以我以自己的兴趣写出的文章,希望各位多多支持!多多点赞,评论讨论加关注. 最近有点忙碌,对于我来说,学习Android开发,是对于我的考验,最近一位大佬发给我一 ...
- KAFKA && zookeeper 集群安装
服务器:#vim /etc/hosts10.16.166.90 sh-xxx-xxx-xxx-online-0110.16.168.220 sh-xx-xxx-xxx-online-0210.16.1 ...
- sql注入用<>绕过被过滤的select ——百度杯9月第二场SQL
题目提示SQL注入,打开源代码发现<!--SELECT * FROM info WHERE id=1--> 尝试union select 1,2,3提示inj code! 经过多次尝试之后 ...
- mysql根据关键词查询匹配多个字段时结果不正确
一开始的写法 SELECT rrc.id, rrc.resource_name rrc.is_publish FROM res_resource_catalog AS rrc <where> ...
- eclipse无法访问sun.misc.Unsafe类的解决办法
参考:https://www.cnblogs.com/duanxz/p/6090442.html
- Android相关视频
Android架构师 层次分析 –从顶层到底层 洞察其原理https://www.bilibili.com/video/av59066641?t=132安卓/Android 逆向破解系统班 第2期 全 ...
- Java虚拟机解释器与JIT编译器
一.JAVA编译相关概念 1.动态编译(dynamic compilation)指的是“在运行时进行编译”:与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫 ...
- 【转】SQL2008 链接Oracle 调用存储过程
1. SQL链接ORACLE 都是可视化的操作 如下图: 红色框选的是oracle的数据驱动,如果没有这个驱动 那需要单独安装oracle的client端 装完以后就有了. 2.在创建之前,在SQLS ...