Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Una ayuda por favor referente DBGrid... (https://www.clubdelphi.com/foros/showthread.php?t=10878)

razadi 31-05-2004 19:57:17

Una ayuda por favor referente DBGrid...
 
Alguien me podría decir u orientar para poner un control (de preferencia uno de fecha) dentro de un DBgrid :(..se los agradecere...

jachguate 31-05-2004 20:15:45

Un dbgrid perfectamente soporta la edición de fechas. Si queres hacerlo con un formato en particular, podes valerte de la propiedad EditFormat de los fields asociados a las fechas.

Hasta luego.

;)

marcoszorrilla 31-05-2004 20:20:34

Me da la impresión que lo que quiere es hacer que se despliegue un DateTimePicker cuando entra en la columna de la rejilla que contenga la fecha, acabo de preparar este ejemplo, a ver si acierto con lo que quiere:

Código Delphi [-]

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
  if DbGrid1.Columns [DbGrid1.SelectedIndex].
  Field = Table1Saledate   then
  DateTimePicker1.Visible := True
  else
  DateTimePicker1.Visible := False;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.Edit;
Table1Saledate.Value:=Trunc(DateTimePicker1.Date);
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdFocused in State) and
    (Column.Field = Table1Saledate) then
  begin
    DateTimePicker1.SetBounds (
      Rect.Left + DBGrid1.Left + 1,
      Rect.Top + DBGrid1.Top + 1,
      Rect.Right - Rect.Left,
      Rect.Bottom - Rect.Top);
  end;
end;

Un Saludo

razadi 31-05-2004 20:26:13

efectivamente colega (MarcoZorrilla)
 
Si, efectivamente eso andaba buscando, aunque no con un datetimepicker, sino con un componente que me pasaron que se llama dcsdete, voy a checarlo..

se los agradesco bastente

Jech 15-09-2004 23:38:36

Estuvo casi perfecto (MarcoZorrilla)
 
Hola a todos una vez encuentro un truco que me sirve de mucho, y todo gracias a esta maravillosa web, bueno me costo un poco entender el ejemplo de Marco pero luego de algunas correciones y/o mal entendidos, al fin lo pude hacer correr a la perfección, primero me costo decifrar lo que significaba la linea...

Table1SaleDate

pues resulto que habia que poner el campo del DBGrid que es tipo Date eso hice y funciono.
Luego me dio un error en la linea...

Table1.FieldByName('Fecha').Value:= Trunc(DateTimePicker1.Date);

tipos incompatibles Variant and Int64.

Lo que decidi hacer fue borrar el Trunc que pero parecia que estaba demas y LUZZZZ el programa corre de las mil Maravillas, muchas gracias por toda la ayuda que prestan a las personas que aun nos falta mucho conocimiento...
Atte. Jech de Bolivia

Fat 01-04-2016 12:27:15

Delphi XE6
 
Buenas,

Estoy intentando aplicar el código en la versión XE6 y no reconoce la sentencia 'Column.Field' e intentado cambiarla por 'Column.Field.FieldName' y tampoco funciona.

Gracias por la ayuda.

Casimiro Notevi 01-04-2016 12:43:37

Pon tu código.

Fat 01-04-2016 12:48:09

Código
 
Código Delphi [-]
if (gdFocused in State) and
    (Column.Field = 'diacobro') then
  begin
    DateTimePicker.SetBounds (
      Rect.Left + DBGrid11.Left + 1,
      Rect.Top + DBGrid11.Top + 1,
      Rect.Right - Rect.Left,
      Rect.Bottom - Rect.Top);

Casimiro Notevi 01-04-2016 13:33:08

¿Cuál es el mensaje de error?
¿Es un dbgrid estandar?

Fat 01-04-2016 13:42:55

Undeclared identtifier:'column'

Gracias.

Fat 01-04-2016 13:43:46

Perdona, es un dbgrid estándar.

Casimiro Notevi 01-04-2016 13:48:28

¿Has creado el campo persistente?

Fat 01-04-2016 13:58:27

Si lo he creado. He probado hacerlo en delphi 7 y funciona sin problema(por si ayuda de algo).

Gracias.

AgustinOrtu 01-04-2016 15:58:33

En donde pusiste ese código? El error que arroja el compilador es que no encuentra una variable con nombre "column". Estas usando el evento incorrecto

Fat 04-04-2016 11:55:42

Buenas razadi,

Perdonad la demora en responder pero es que he tenido al bb malito y no he tenido tiempo para responder hasta ahora.
Tienes toda la razón lo estaba utilizando otro evento del dbgrid, perdonad mi despiste y haberles hecho perder el tiempo.

Un millón de gracias por vuestra paciencia y ayuda.

Casimiro Notevi 04-04-2016 12:05:58

Lo primero es lo primero, que se mejore el bb ^\||/

Fat 04-04-2016 12:11:33

Gracias Casimiro :)


La franja horaria es GMT +2. Ahora son las 15:40:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi