Delphi 如何检查用户是否已在TDateTimePicker中输入值?
我正在Delphi10.3中使用VCL表单应用程序。我正在使用Delphi 如何检查用户是否已在TDateTimePicker中输入值?,delphi,delphi-10.3-rio,Delphi,Delphi 10.3 Rio,我正在Delphi10.3中使用VCL表单应用程序。我正在使用TDateTimePicker记录日期和时间 我必须将值保存到什么类型的变量中,如何检查用户是否实际输入了值,而不是将其留空 我必须将值保存到[…]中的变量类型是什么 使用IDE,您可以很容易地发现这一点。实际上,当您键入日期时间选择器控件的名称和句点时,Code Insight允许您探索控件的属性和方法。您的第一次尝试将是关于Date,然后您将看到: 我不知道是否使用控件仅选择日期或日期时间值,但在这两种情况下,这里都有一个很好的
TDateTimePicker
记录日期和时间
我必须将值保存到什么类型的变量中,如何检查用户是否实际输入了值,而不是将其留空
我必须将值保存到[…]中的变量类型是什么
使用IDE,您可以很容易地发现这一点。实际上,当您键入日期时间选择器控件的名称和句点时,Code Insight允许您探索控件的属性和方法。您的第一次尝试将是关于Date
,然后您将看到:
我不知道是否使用控件仅选择日期或日期时间值,但在这两种情况下,这里都有一个很好的选择:datetime
或date
。我假设你只想要日期;这对我的A没有区别
但是现在你想,“这个Date
属性似乎正是我要寻找的东西,但是我如何才能确定它确实包含控件中显示的日期(而不是,比如说,应用程序编译的日期)?”
然后关闭代码洞察列表,将插入符号放在日期
标识符内,然后按F1键,显示:
指示日历上标记的日期
宾果
但是变量应该有什么类型呢?代码透视和文档都告诉您:TDate
[H] 如何检查用户是否实际输入了值,而不是将其留空
实际上,TDateTimePicker
不能为空
因此,您实际的问题可能是,“当用户更改日期时,如何通知我?”
这也是您可以在IDE中发现的。在表单设计器中选择日期时间选择器,然后转到对象检查器中的事件选项卡:
我将把它作为一个练习留给您来决定使用哪个事件。选择事件时也使用F1键
但利用这样的事件是一个可怕的想法。我想您想使用它来启用下一步或提交按钮。不要那样做。如果初始日期恰好是用户想要提交的日期,他们会非常恼火,因为如果不先更改日期,然后再重新更改日期,他们就无法继续(如果他们甚至设法弄清楚这是他们需要做的)
我必须将值保存到哪种类型的变量中
TDateTimePicker
具有、和属性,分别返回和值
如何检查用户是否实际输入了值,而不是将其留空
默认情况下,TDateTimePicker
不能为“空白”。它的日期
/时间
/日期时间
属性将始终返回一些值
如果希望用户能够指定非值,TDateTimePicker
有一个用于该目的的属性。将其设置为True
,然后可以在使用日期
/时间
/日期时间
值之前查询属性
我只需要一种方法来检查用户是否做了任何更改
如果您只想知道用户是否更改了默认值,则可以使用事件来实现此目的。例如,声明一个布尔变量(或者,仅使用属性),最初将其设置为
False
,然后让OnChange
将其设置为True
,然后您可以随时检查该值。一个TDateTimePicker
甚至可以是“空白”吗?它会自动填充当天的日期。我只需要一种方法来检查用户是否做了任何更改。(如果可能的话。)