Cita:
Empezado por DasGrun
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...

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 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.
