2014-01-08 34 views
2

我有一個TDateTimePicker Kind = dtkDate在我的表單上。
當窗體打開我做TDateTimePicker與Kind = dtkDate返回Date屬性中的時間分數?

TDateTimePicker.date := Date 

我有一個var lStartDay : TDateTime;

lStartDay := DatePickerStart.Date; 

我還沒有觸及在用戶界面TDateTimePicker的。

現在,評估/修改(Ctrl-F7)對話框和監視列表(以及懸停在代碼上的光標)顯示DatePickerStart.Date爲8-1-2014,但StartDate爲8-1-2014 15: 00:00

當我編輯的手錶價值DatePickerStart.Date到不使用可視化它顯示41647,625(我花了一些時間來發現!)

爲什麼TDateTimePicker.Date包含時間分數?

回答

4

回答我的問題,以防止其他人翻滾到同一個坑:

事實證明,當你把一個的TDateTimePicker表單上,時間屬性,都會瀰漫着當前時間這總是被退回作爲DatePickerStart.Date的一部分。在15:00:00我的顯然是放在表格上

即使您使用TDateTimePicker,所以選擇其他日期的時間仍然是「在」。因此,要解決這個問題:在設計時清除Time屬性(它變爲00:00:00)和/或在您真的只需要使用Trunc(TDateTimePicker.Date)或DateOf(TDateTimePicker.Date)時總是使用該屬性日期。

本身,TDateTimePicker.Date不返回日期!

+0

我更喜歡使用'ReplaceTime(TDateTimePicket.Date,0.0)'和'ReplaceDate(TDateTimePicker.Time,0.0)'。 –

+0

這個錯誤已經存在了十多年(可能自推出以來)。 1998年至1999年,我在UK BUG雜誌上撰寫了一篇關於這件事的文章。 –