Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Timer dentro de SMDBGrid (https://www.clubdelphi.com/foros/showthread.php?t=70475)

DasGrun 22-10-2010 20:01:00

Timer dentro de SMDBGrid
 
Necesito Saber como hago para insertar en una celda un Timer a un SMDBGrid .

Tienen Alguna Idea de como Hacerlo?
Han Intentado con Otro Objeto a parte de Timer, ya sea con un DataTimePicker, checkbox...etc.

Gracias Por Su Pronta Ayuda.

ecfisa 23-10-2010 02:49:39

Cita:

Empezado por DasGrun (Mensaje 380173)
Necesito Saber como hago para insertar en una celda un Timer a un SMDBGrid .

Tienen Alguna Idea de como Hacerlo?
Han Intentado con Otro Objeto a parte de Timer, ya sea con un DataTimePicker, checkbox...etc.

Gracias Por Su Pronta Ayuda.

Hola DasGrun.

No sé a que componente te referís con 'un Timer', no creo que quieras poner un TTimer... :eek:
Así que te hago un ejemplo con un DBGrid y un TDateTimePicker como para darte una idea. Probá si
funciona para el SMDBGrid.

.- Primero poné un DateTimePicker en el form con su propiedad Visible igual a False.

.- Este código en el evento OnDrawColumnCell del DBGrid:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdFocused in State)and(Column.Field.FieldName = 'Nombre_del_campo') then
    with DateTimePicker1 do
    begin
      Left := Rect.Left + DBGrid1.Left + 2;
      Top := Rect.Top + DBGrid1.top + 2;
      Width := Rect.Right - Rect.Left;
      Height := Rect.Bottom - Rect.Top;
      Visible := True;
    end;
end;
.- Y este en el evento OnChange del DateTimePicker:
Código Delphi [-]
 with IBDataSet do  // o IBTable, Table, ADOTable, etc...
  begin
    Edit;
    FieldByName('Nombre_del_campo').AsDateTime:= DateTimePicker1.Date;
    Post;
  end;
.- Por último dentro del evento OnColExit del DBGrid:
Código Delphi [-]
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
   if DBGrid1.SelectedField.FieldName = 'Nombre_del_campo' then
    DateTimePicker1.Visible:= False;
end;


Saludos. :)

DasGrun 27-10-2010 16:36:38

Gracias por su Ayuda.

Pero lo que necesito es almacenar horas en una columna del SMDBGRID, no me funciona con lo que quiero hacer con el DataTimePicker.

lo que quiero almacenar en la celdas son exactamente estos parametros 07:00 A.M. 16:50 P.M. 12:00 A.M etc.

tengo 2 campos en la BD de tipo TIME donde el 3 campo calcula automaticamente la suma de las horas almacenadas. ¿Me Explico?


gracias Nuevamente,

ElDioni 27-10-2010 17:26:54

Te lo digo de memoria, si quieres que la persona señale la hora, tendrás que usar un datetimepicker como te comentaba el compañero, y en la propiedad format le pones hh:mm:ss para que solo te muestre la hora y no la fecha. Luego aplicas el código que te apuntaban para colocarlo dentro del Grid.

Un saludo.

DasGrun 28-10-2010 20:21:44

Gracias a Todos me Sirvió Mucho sus Comentario.


La franja horaria es GMT +2. Ahora son las 08:40:14.

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