Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Seleccionar Fila Dbgrid por programa

Como puedo seleccionar una fila del dbgrid por programa. Es decir : en el form hago un insert que luego se carga en el dbgrid, el usuario despues hace un click sobre la linea y se ejecutan distintas sentencias dentro del oncellclick del dbgrid.
Queria evitar que el usuario haga ese click y automaticamente al grabar el sistema cargue en el dbgrid y haga un click sobre la linea.

Se puede hacer un focus con un where en el dbgrid, para ir directamente a la linea?.
Gracias.
Responder Con Cita
  #2  
Antiguo 28-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.
Cita:
Como puedo seleccionar una fila del dbgrid por programa. Es decir : en el form hago un insert que luego se carga en el dbgrid, el usuario despues hace un click sobre la linea y se ejecutan distintas sentencias dentro del oncellclick del dbgrid.
Queria evitar que el usuario haga ese click y automaticamente al grabar el sistema cargue en el dbgrid y haga un click sobre la linea.
Sinceramente no entiendo la situación ni la consulta.

Cita:
Se puede hacer un focus con un where en el dbgrid, para ir directamente a la linea?.
Si el TDBGrid tiene asignado el mismo TDataSource que los controles data-aware con los que estas ingresando, el posicionamiento y los cambios se ven reflejados inmediatamente en el DBGrid.

Sería bueno si describes el entorno en que se desarrolla la acción con mas detalles.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 28-09-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
dbgrid

Hola Ecfisa, un usuario solicita un turno, completa fechas, oprime un boton se genera un pdf y lo ve reflejado en un dbgrid la informacion grabada.

Por otro lado al ver en el dbgrid la informacion solicitada hace un click sobre el renglon del dbgrid de su turno solicitado y hay diversas sentencias que se ejecutan dentro del oncellclick.
(lo habilita a firmar digitalmente ese pdf).

Queria hacerlo mas automatico que despues del insert y el refresh en el dbgrid, por programa hacer un click sobre la linea correspondiente.

Para mas claro puede ser que ese usuario tenga varios turnos pedidos a lo largo del tiempo, por eso tendria varios rows, tendria que buscar internamente cual es el renglon grabado donde corresponde el click.
Gracias.

Gracias.
Responder Con Cita
  #4  
Antiguo 28-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shoulder.

A ver si esto es lo que estas buscando...
Código Delphi [-]
...
type
  TForm1 = class(TForm)
  ...
  private
    procedure DataSetAfterPost(DataSet: TDataSet);
  public
  end;

...

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.AfterPost := DataSetAfterPost;
end;

type
  TDBGridEx = class(TDBGrid);

procedure GotoCurrentRow(Grid: TDBGrid);
var
  ti: array [0..1] of TInput;
  p : TPoint;
  R : TRect;
  cr: Integer;
begin
  cr := TDBGridEx(Grid).Row;
  R  := TDBGridEx(Grid).CellRect(0, cr);
  p  := Form1.ClientToScreen(Point(Grid.Left+IndicatorWidth+10, R.Top+10));
  Mouse.CursorPos := p;
  ZeroMemory(@ti, SizeOf(ti));
  ti[0].mi.dwFlags := MOUSEEVENTF_LEFTDOWN;
  ti[0].Itype      := INPUT_MOUSE;
  ti[1].mi.dwFlags := MOUSEEVENTF_LEFTUP;
  ti[1].Itype      := INPUT_MOUSE;
  SendInput(2, ti[0], SizeOf(TInput));
end;

// Despues de guardar, ir a la fila
procedure TForm1.DataSetAfterPost(DataSet: TDataSet);
begin
  GotoCurrentRow(DBGrid1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.AfterPost := nil;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 29-09-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo creo que estás dando más vueltas de la cuenta.
Si quieres ejecutar un código en el clik lo colocas ahí (1) o generas un procedimiento y lo llamas desde ahí (2).

Si quieres ejecutar ese código desde otro sitio, lo lógico es que optes por la opción (2) y lo llames desde donde toca, pero lanzar un click del grid para ejecutar ese código es innecesario y lioso. El paso por el OnClick es innecesario.

No se si me explico.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 29-09-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
dbgrid

Gracias era lo que necesitaba funciona perfecto, reemplaze el onclick del dbgrid y cuando hago el GotoCurrentRow despues voy a un procedimiento, con lo que me pasaron ustedes. Genial!!!.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBGRID ¿como seleccionar fila y obtener datos de la fila ? JXJ Varios 5 18-04-2017 02:50:14
Seleccionar fila DBgrid ?? Coco_jac Varios 3 25-05-2010 16:58:41
Seleccionar una fila de un DBGrid chinchan C++ Builder 3 09-03-2010 16:58:37
Seleccionar una fila en un DBGRID erickperez6 Conexión con bases de datos 1 02-05-2004 16:49:34
seleccionar fila de un DBGrid empty Varios 1 31-03-2004 12:00:47


La franja horaria es GMT +2. Ahora son las 02:03:58.


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
Copyright 1996-2007 Club Delphi