Incidentally I have taken to doing something similar with date entry.  An edit 
box, but in this case I put a little arrow button at the end of it, and 
clicking that superimposes a date picker over the edit box.   Its rather more 
work but it works really neatly, and can be easily repeated.

Date entry is flexible, as a string today could be

5-feb-10
5.2.10
5.2.2010
5/2/10

on exit the date is verified, and the date picker if clicked  populates the 
text field with the first format above.

Entering dates like this is very flexible, caters for those who like to use the 
keyboard and those who like to use the mouse.

Using the date picker is especially cool under Vista/Windows 7 as the newer 
Date picker is really really nice - anyone else noticed that?

Means doing something like:

(DateTimePicker is normally invisible)

procedure Tform1.btnStartDateClick(Sender: TObject);
begin
  DateTimePicker1.left:=edtStartDate.Left;
  DateTimePicker1.top:=edtStartDate.Top; 
  DateTimePicker1.width:=edtStartDate.width+btnStartDate.Width;
  DateTimePicker1.Date:=xfAdateToDTDate(edtStartDate.Text);
  DateTimePicker1.Visible:=true;
  PickStartOrFin:=1;
  DateTimePicker1.Perform(WM_SYSKEYDOWN, VK_DOWN, 0);
end;

//this code handles two separate edit boxes
procedure Tform1.DateTimePicker1CloseUp(Sender: TObject);
begin
  if PickStartOrFin=1 then 
edtStartDate.Text:=xfdtDateToAdate(DateTimePicker1.Date);
  if PickStartOrFin=2 then 
edtFinDate.Text:=xfdtDateToAdate(DateTimePicker1.Date);
  DateTimePicker1.Visible:=false;
  //redisplay data to reflect new date
  Redisplay data;
end;

(the xfDTDatetoADate and xfADatetoDTDate are my library routines to convert 
between string dates and TDateTime)

John
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Reply via email to