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

时间:2012-03-08 06:17:46

标签: delphi vcl

我希望用户能够指定类似“星期二,上午10点至上午11点”的内容。

我可以使用一个复杂的控件执行此操作,还是使用3个单独的简单控件(例如组合框,一天一个,一个用于开始/停止时间)更好?

2 个答案:

答案 0 :(得分:7)

  

3个组合框会更好吗,一个是白天,一个是开始/停止时间?

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

"Marţi, de la 22 la 21"

(故意以非英语写作,以24小时格式反转小时!)。甚至不要考虑让非英语母语人士用英语写日期,这是折磨。

换句话说,除非您能够使用多种语言处理自然语言,否则请使用简单的多组合框设置,并为每个细分设置正确的编辑器:一个用于日期,两个用于时间。

答案 1 :(得分:5)

JEDI VCL有很多选择。

如果您希望能够执行类似Google日历的操作,您可以在特定日期从视觉上9点到11点选择范围,您可以使用JvTimeFramework(个人管理器)组件。对于具有从特定范围到另一特定范围的时间的单日视图,TJvTFDays组件是理想的:

enter image description here

您可以点击您想要开始的时间,例如Google日历。然后键入“与dave共进午餐”并按Enter键,然后抓住方块的底部并上下拖动以固定持续时间,或者上下拖动方块的顶部以更改开始时间。如果双击它,可以使用对话框直接输入 - 屏幕截图中显示的“添加约会”对话框只是用户拥有的一个选项。它们可以在没有它的情况下工作,只需直接输入到日期定时器页面控件上。

否则,如果你想坚持文本输入,我会结合几个控件,包括一个JvDateTimePicker。

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