線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2110
推到 Plurk!
推到 Facebook!

DateTimePicker起訖日期檢查問題

尚未結案
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-05 06:07:18 IP:220.134.xxx.xxx 訂閱
各位前輩:
想請教一個自己遇到的怪問題,我使用DateTimePicker來作日期的輸入,因為是起訖條件,
需要輸入兩個日期,且結束日期不能小於開始日期,但是我在結束日期上得Change事件上
作如下的檢查,只要結束日期小於開始日期,我就將結束日期設定為跟開始日期一樣,
但警告訊息會出現,但是結束日期在表單上就是沒有反應,真不知道我哪邊錯誤!

想請各位幫忙看一下!感謝!
<textarea class="delphi" rows="10" cols="60" name="code"> procedure TFrm_00_BaseFilter.DateTimePicker_EndChange(Sender: TObject); begin if (DateTimePicker_End.DateTime < self.DateTimePicker_Begin.DateTime) then begin application.MessageBox('結束日期不可以小於開始日期!', '警告', MB_OK MB_ICONWARNING); // Self.DateTimePicker_End.Date := StrToDate('2090/12/31'); Self.DateTimePicker_End.Date := Self.DateTimePicker_Begin.Date ; Self.DateTimePicker_End.Refresh; end; end; </textarea>
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-05 08:30:34 IP:59.124.xxx.xxx 未訂閱
加入紅色的部份試試: 

procedure TFrm_00_BaseFilter.DateTimePicker_EndChange(Sender: TObject);
begin
if (Trunc(DateTimePicker_End.DateTime) < Trunc(self.DateTimePicker_Begin.DateTime)) then
begin
application.MessageBox('結束日期不可以小於開始日期!', '警告', MB_OK MB_ICONWARNING);
// Self.DateTimePicker_End.Date := StrToDate('2090/12/31');
Self.DateTimePicker_End.Date := Self.DateTimePicker_Begin.Date ;
Self.DateTimePicker_End.Refresh;
end;
end;
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-05 14:57:57 IP:220.134.xxx.xxx 訂閱
前輩:
他有執行到application.MessageBox('結束日期不可以小於開始日期!', '警告', MB_OK MB_ICONWARNING);

我沒反應的意思是:他並無法確實執行Self.DateTimePicker_End.Date := Self.DateTimePicker_Begin.Date這個敘述!

不知道是否我下在Change事件中!

===================引 用 文 章===================
加入紅色的部份試試:

procedure TFrm_00_BaseFilter.DateTimePicker_EndChange(Sender: TObject);
begin
if (Trunc(DateTimePicker_End.DateTime) < Trunc(self.DateTimePicker_Begin.DateTime)) then
begin
application.MessageBox('結束日期不可以小於開始日期!', '警告', MB_OK MB_ICONWARNING);
// Self.DateTimePicker_End.Date := StrToDate('2090/12/31');
Self.DateTimePicker_End.Date := Self.DateTimePicker_Begin.Date;
Self.DateTimePicker_End.Refresh;
end;
end;
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-05 19:19:03 IP:59.124.xxx.xxx 未訂閱
寫在 OnChange 不就改一下就會觸發一次?

你可以再用 ShowMessage 在該行之後測試結束日期的 TDateTimePicker.Date 的值是否有更改
另外, 為什麼要加 TDateTimePicker.Refresh?
系統時間:2024-05-17 18:19:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!