2013-03-14 84 views
0

我需要在TDateTimePicker.OnChangeEvent发生日期变化时作出反应。显示对话框,如“未保存的更改将会丢失”,按钮确定,取消。如果用户按取消按钮,我想重置原始日期。如何在onChangeEvent中更改日期?

不幸的是,我无法更改该事件的日期。更改被忽略。

更详细的描述:

  1. 用户更改的DateTimePicker(通过键盘)日期或打开日历并选择一个日期
  2. OnChange事件被触发(日历也许仍然打开)
  3. 我显示MessageDialog,如果用户按“取消”,我想恢复日期。例如。关闭日历并恢复日期。
+0

当用户取消时,change event上的日期选择器不会触发。所以,我不明白这个问题。我认为你需要更清楚一点。 – 2013-03-14 10:03:22

+4

请参阅['“当用户选择日期时更正datetimepicker上的值”'](http://stackoverflow.com/q/2238221/576719)。恢复“OnCloseUp”事件中的值。 – 2013-03-14 10:03:47

+0

另一方面,'OnCloseUp'事件在确认对话框完成之前已经执行很久。所以最好以另一种方式处理这个问题如果用户取消编辑,只需将datetimepicker值设置为恢复的值即可。 – 2013-03-14 10:34:02

回答

0

它部分由用户LU RD解决 - 请参阅注释“恢复OnCloseUp事件中的值”。它适用于从日历中选择日期。

如果用户直接在使用键盘进行编辑时更改日期,则可以直接在onChangeEvent中更改它。

所以onCloseUp的onChange事件设置原始(或任何其他日期)的组合就够了。