{*******************************************************} { } { Responsive Software http://www.responsive.co.nz } { } { Copyright (c) 2003-2006 Responsive Software Limited } { } {*******************************************************} unit PromptDate; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Base, Grids, StdCtrls, Buttons, ComCtrls; type TPromptDateForm = class(TBaseForm) OkBitBtn: TBitBtn; CancelBitBtn: TBitBtn; Label2: TLabel; DateDateTimePicker: TDateTimePicker; procedure FormShow(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure OkBitBtnClick(Sender: TObject); procedure DateDateTimePickerKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } Date : TDateTime; function Prompt : boolean; end; var PromptDateForm: TPromptDateForm; implementation {$R *.dfm} function TPromptDateForm.Prompt : boolean; begin Result := (ShowModal = mrOk); end; procedure TPromptDateForm.OkBitBtnClick(Sender: TObject); begin Date := Trunc(DateDateTimePicker.Date); end; procedure TPromptDateForm.FormShow(Sender: TObject); begin DateDateTimePicker.Date := Date; DateDateTimePicker.SetFocus; end; procedure TPromptDateForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_ESCAPE then begin Close; Key := 0; end; end; procedure TPromptDateForm.DateDateTimePickerKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then begin GoToNextControl; Key := 0; end; end; end.