Page 1 of 1

Problem with TCRDBGrid.DrawColumnCell

Posted: Wed 21 Dec 2005 19:54
by chuckbeasley
I'm trying to imbed a DateTimePicker in a CRDBGrid cell. However, when I click on the cell containing the date and the following code executes, nothing happens. Any clues?

procedure TForm1.CRDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Column.Field.DataType in [ftDateTime, ftTimeStamp]) then
with DateTimePicker do
begin
Left := Rect.Left + CRDBGrid1.Left + 1;
Top := Rect.Top + CRDBGrid1.Top + 1;
Width := Rect.Right - Rect.Right + 2;
Width := Rect.Right - Rect.Right + 2;
Height := Rect.Bottom - Rect.Top + 2;
Visible := True;
end;
end;
end;

Posted: Wed 21 Dec 2005 20:45
by chuckbeasley
Fixed it. Here's the source:

DateTimePicker.Visible := CRDBGrid1.SelectedField = DataModule1.adbndbDATE_TIME;
if DateTimePicker.Visible then
if gdFocused in State then
begin
DateTimePicker.Date := DataModule1.adbndbDATE_TIME.AsDateTime;
DateTimePicker.SetBounds(Rect.Left,Rect.Top, Rect.Right-Rect.Left,
Rect.Bottom-Rect.Top);
end;