簡體   English   中英

如何檢查用戶是否在 TDateTimePicker 中輸入了值?

[英]How can I check if the user has entered a value into a TDateTimePicker?

我在 Delphi 10.3 中使用 VCL Forms 應用程序。 我正在使用TDateTimePicker記錄日期和時間。

我必須將值保存到哪種類型的變量中,以及如何檢查用戶是否實際輸入了值而不是將其留空?

我必須將什么類型的變量值保存到 [...] 中?

您可以使用 IDE 輕松發現這一點。 實際上,當您鍵入日期時間選擇器控件的名稱和句點時,Code Insight 可讓您探索控件的屬性和方法。 您的第一次嘗試將是有關Date的內容,然后是 go:

Code Insight 的屏幕截圖向我們展示了 TDateTimePicker 的一些屬性

我不知道您是否使用控件僅選擇日期或日期時間值,但無論哪種情況,這里都有一個不錯的選擇: DateTimeDate 我假設您只想要日期; 這對我的A沒有任何影響。

但是現在你自己想,“這個Date屬性似乎正是我正在尋找的東西,但我怎么能確定它確實包含控件中顯示的日期(而不是,比如說,應用程序的編譯日期) )?”

然后關閉 Code Insight 列表,將插入符號放在Date標識符中,然后按 F1,它會顯示幫助

表示日歷上標記的日期。

答對了!

但是變量應該有什么類型呢? 好吧,Code Insight 和文檔都告訴您: TDate

[H]如何檢查用戶是否實際輸入了一個值,而不是將其留空?

好吧,實際上, TDateTimePicker不能為空。

所以你的實際問題可能是,“當用戶更改日期時,我怎樣才能得到通知?”

這也是您可以在 IDE 中發現的內容。 Select 表單設計器中的日期時間選擇器和 go 到Object 檢查器中的事件選項卡:

RAD Studio IDE 中對象檢查器的屏幕截圖,顯示了 TDateTimePicker 控件的事件。

我將把它留作練習,讓您確定要使用哪個事件。 選擇事件時也使用 F1 鍵。

但是使用這樣的事件是一個可怕的想法。 我想您想使用它來啟用“下一步”或“提交”按鈕。 不要那樣做。 如果初始日期恰好是用戶想要提交的日期,他們會非常惱火,因為如果不更改日期然后將其更改回來(如果他們甚至設法弄清楚這是他們需要做的),他們將無法繼續。

我必須將值保存到什么類型的變量中

TDateTimePicker具有DateTimeDateTime屬性,它們分別返回TDateTTimeTDateTime值。

如何檢查用戶是否實際輸入了一個值而不是將其留空?

默認情況下, TDateTimePicker不能為“空白”。 它的Date / Time / DateTime屬性總是會返回一些值。

如果您希望用戶能夠指定非值,則TDateTimePicker具有用於此目的的ShowCheckbox屬性。 將其設置為True ,然后您可以在使用Date / Time / DateTime值之前查詢Checked屬性。

我只需要一種方法來檢查用戶是否進行了更改。

如果您只想知道用戶是否更改了默認值,您可以為此目的使用OnChange事件。 例如,聲明一個 boolean 變量(或者,僅使用Tag屬性),最初將其設置為False ,然后讓OnChange將其設置為True ,然后您可以在需要時檢查該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM