Hola, ¿Hay alguna forma de poner un DateTimePicker en una celda de un dbgrid?, ¿se puede?.
Fleon xD

Como poner un DateTimePicker en un dbgrid?
Comenzado por
Fleon
, nov 05 2008 08:57
5 respuestas en este tema
#1
Escrito 05 noviembre 2008 - 08:57
#2
Escrito 05 noviembre 2008 - 09:09
SI SE PUEDE,
espero te sirva
delphi
procedure TfrTickets.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin //Agrega el datetimepicker dtFecha.Visible := DBGrid1.SelectedField = 'FECHA'; if dtFecha.Visible then if gdFocused in State then begin dtFecha.SetBounds(Rect.Left,Rect.Top, Rect.Right-Rect.Left, Rect.Bottom-Rect.Top); end; end;
espero te sirva
#3
Escrito 08 noviembre 2008 - 07:12
Hola eduarcol, perdona la tardanza, estaba probando tu código y me da un error en la línea 4 del código, este es el error:
¿que podria ser?.
Fleon xD
[Error] Unit1.pas(36): Incompatible types: 'String' and 'TField'
¿que podria ser?.
Fleon xD
#4
Escrito 08 noviembre 2008 - 07:26
Hola, prueba lo siguiente:
Saludos.
delphi
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (gdFocused in State) then begin if (Column.Field.FieldName = 'FECHA') then with dtFecha do begin Left := Rect.Left + DBGrid1.Left + 1; Top := Rect.Top + DBGrid1.Top + 1; Width := Rect.Right - Rect.Left + 2; Width := Rect.Right - Rect.Left + 2; Height := Rect.Bottom - Rect.Top + 2; dtFecha.Date := Column.Field.AsDateTime; Visible := True; end; end end;
Saludos.
#5
Escrito 08 noviembre 2008 - 07:27
que lo coloque de memoria, te esta diciendo que le estas asignando un string a un TField, deberiamos igualarlos.
delphi
DBGrid1.SelectedField.FieldName = 'FECHA'
#6
Escrito 08 noviembre 2008 - 07:28
no lo he probado, pero la diferencia con la respuesta de enecumene es que el datetimepicker siempre va a estar dibujado, mientras que lo que te propongo es que se dibuje solo cuando se entra al campo de fecha.