如何在Delphi应用程序中选择日期和时间范围?

如何在Delphi应用程序中选择日期和时间范围?,delphi,vcl,Delphi,Vcl,我希望用户能够指定像星期二一样的时间,从上午10点到上午11点 我可以用一个复杂的控件来实现这一点,还是最好使用3个单独的简单控件,例如组合框,一个用于日,一个用于开始/停止时间 如果有3个组合框,一个用于一天,一个用于开始/停止时间,我会更好吗 选择任何不需要自然语言处理的解决方案。它不那么酷,可能看起来有点过时,但我敢打赌它对用户来说更容易,因为他们可以用鼠标进行所有选择,并且总是知道自己得到了想要的。自然语言很难,人们可能会错过拼写、输入不可能的数据或混淆数据。如果他们输入以下内容,您会怎

我希望用户能够指定像星期二一样的时间,从上午10点到上午11点

我可以用一个复杂的控件来实现这一点,还是最好使用3个单独的简单控件,例如组合框,一个用于日,一个用于开始/停止时间

如果有3个组合框,一个用于一天,一个用于开始/停止时间,我会更好吗

选择任何不需要自然语言处理的解决方案。它不那么酷,可能看起来有点过时,但我敢打赌它对用户来说更容易,因为他们可以用鼠标进行所有选择,并且总是知道自己得到了想要的。自然语言很难,人们可能会错过拼写、输入不可能的数据或混淆数据。如果他们输入以下内容,您会怎么做:

"Marţi, de la 22 la 21"
有意用非英语书写,24小时格式中的小时数颠倒!。甚至不要考虑让非英语母语的人用英语写日期,这是一种折磨


换句话说,除非你有谷歌用多种语言处理自然语言的能力,否则你可以选择简单的多组合框设置,每个片段都有合适的编辑器:一个用于日期,两个用于时间。

绝地VCL有很多选择

如果您希望能够像谷歌日历一样,在特定的一天中,您可以在视觉上选择从上午9点到11点的范围,那么您可以使用JvTimeFramework personal organizer组件。对于时间从一个特定范围到另一个特定范围的单日视图,TJVFDays组件是理想的:

你点击你想开始的时间,就像谷歌日历一样。然后键入dave的午餐并按enter键,然后抓住正方形底部并上下拖动以确定持续时间,或者上下拖动正方形顶部以更改开始时间。如果双击它,您可以使用对话框直接输入-屏幕截图中显示的添加约会对话框是用户仅有的一个选项。他们可以在没有这些的情况下工作,只需直接输入到day timer page控件中

否则,如果您想坚持使用文本输入,我将组合几个控件,包括一个JvDateTimePicker


查看上述程序的JVCL examples文件夹中的examples\JvTimeFrameWork\PhotoOp演示。

我打赌3个TDateTimePickers和*Span函数…已编辑以删除帮助我查找主题外的组件短语。+1。这就是它的工作原理。确保月份为非数字,年份为完整的4位数,因为这经常会导致混淆。01/02/03可能意味着很多事情,这取决于你问谁。2001年2月3日没有这个问题。我个人认为Windows应用程序应该使用用户在控制面板Pieter中指定的格式设置。ShortDateFormat和LongDateFormat应由用户决定,而不是由开发人员决定。在一些科学应用程序中,我强制所有内容都采用ISO格式,但在我的应用程序配置中通常有一个复选框来强制ISO日期,当它关闭时,我使用本机格式。@PieterB,我认为Mawg的想法是让用户以自然的方式写入时间范围信息;强迫他们使用严格的时间格式来解析ease听起来并不友好!