Ir al contenido


Foto

tdateedit en un dbgrid


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 pbruccoleri

pbruccoleri

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 09 mayo 2011 - 11:31

Hola!

Necesitaría usar un control tdateedit en la celda de un dbgrid donde haya una fecha, así prevengo fechas erróneas.. (y además visualmente le gusta más al usuario)

Estuve leyendo esto de cambiar el editor de celdas  (También he sacado algo de información en foros de delphi.)

Se supone que en el evento SelectEditor del dbgrid se establece el editor de celdas.
Lo que hice fue poner por ejemplo un control dateedit por ahí en el form, lo hice invisible y lo asigné:



delphi
  1. procedure TListaObras.dbgAmpliacionesSelectEditor(Sender: TObject;
  2.   Column: TColumn; var Editor: TWinControl);
  3. begin
  4.   if (column.Index=2) then begin  //en esa col hay una fecha
  5.     Editor := DateEdit1;
  6.   end;
  7. end;   



Todo muy lindo, pero el dateedit queda en cq lado y no en la celda!..

Probé esto otro: (o sea cambio las coordenadas y le asigno el valor del campo correspondiente de la consulta)



delphi
  1.   if (column.Index=2) then begin
  2.     DateEdit1.BoundsRect := dbgAmpliaciones.CellRect(Column.Index + 1, dbgAmpliaciones.SelectedIndex);
  3.     DateEdit1.Date:= qryAmpliaciones.FieldByName('fecha').AsDateTime;
  4.     Editor := DateEdit1;
  5.   endif



pero a veces queda en la fila correcta y a veces no.

Alguien ha hecho algo de esto que me pueda orientar?

Muchas gracias
  • 0




IP.Board spam blocked by CleanTalk.