2010-02-10 77 views

回答

2

使用 「ONCloseUp」 事件 - 這樣對我的作品(Delphi 7中,WINXP)

unit Unit1; 

interface 

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, ComCtrls, DateUtils, StdCtrls; 

type 
    TForm1 = class(TForm) 
    dtp1: TDateTimePicker; 
    btn1: TButton; 
    edt1: TEdit; 
    procedure btn1Click(Sender: TObject); 
    procedure dtp1CloseUp(Sender: TObject); 
    private 
    { Private declarations } 
    procedure SetDayToMonday(); 
    public 
    { Public declarations } 
    end; 

var 
    Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.SetDayToMonday; 
begin 
    dtp1.DateTime := dtp1.DateTime - DayOfTheWeek(dtp1.DateTime) + 1; 
end; 

procedure TForm1.dtp1CloseUp(Sender: TObject); 
begin 
    SetDayToMonday; 
end; 

end. 

--reinhard :-)

+0

這就像一個魅力,Thx – 2010-02-11 08:05:14

2

使用onUserInput事件!

+0

哦,我從來沒有注意到存在。 – 2010-02-10 16:22:11

0

我會發布一條消息到表單,定義一條消息(WM_USER + 1000 + X),發佈並處理它。如果你沒有像這樣「掛鉤」,你也可以做一個PendingDateTimeTimer:在OnChange事件設置PendingDateTimeTimer.Enabled:= true後稍微做驗證(比如10毫秒)的TTimer。

相關問題