...set a date of a TDateTimePicker to blank?

Author: Thomas Stutz

Category: VCL

{
 Use the DateTime_SetFormat API macro (put CommCtrl in the uses clause) to set
 the date to blank or a message.

 Then in the DateTimePicker OnCloseUp event handler set the format to what you
 want when a date has been selected, and the DTP will show the selected date.

 Attach an OnClick handler if you want it to open when you
 click on the edit control.
}

{
 Verwende das DateTime_SetFormat API Makro von der CommCtrl Unit, um den TDateTimePicker
 anfangs leer anzuzeigen oder um einen beliebigen String zu setzen.

 Wenn das OnCloseUp Ereignis vom TDateTimePicker aufgerufen wird, kannst du ein
 beliebiges Datums-Format setzen und der DateTimePicker zeigt es dann an.

 Damit man mit einem Click auf das Edit-Control den TDateTimePicker öffnen kann, kann man
 zusätzlich einen OnClick Handler hinzufügen, wo man dann den TDateTimePicker öffnet.
}

uses
  
CommCtrl;

var
  
FDTMDateEmpty: Boolean;

procedure TForm1.FormCreate(Sender: TObject);
begin
  
DateTime_SetFormat(DateTimePicker1.Handle,  '''Choose a date''');
  FDTMDateEmpty := True;
end;

procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
  
DateTime_SetFormat(DateTimePicker1.Handle,  PChar('dd.MM.yy'));
end;

procedure TForm1.DateTimePicker1Click(Sender: TObject);
begin
  if 
FDTMDateEmpty then
  begin
    
DateTimePicker1.Perform(WM_KEYDOWN, VK_F4, 0);
    DateTimePicker1.Perform(WM_KEYUP, VK_F4, 0);
  end;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  
FDTMDateEmpty := False;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base