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 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
Exclamation DBGrid

Hola, disculpen podria alguien ayudarme, necesito saber como hacer doble click en la celda de un dbgrid, y al hacerlo que los datos relacionados con los de esa celda, se pasen a unos edits, pueden audarme??
gracias.
Responder Con Cita
  #2  
Antiguo 05-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
El DBGrid dispone, como la amyoría de controles, de un evento OnDblClick. Supongo que ya lo tendrías en cuenta.

Luego se trata de interceptarlo, y ahí metes el código que quieras, por ejemplo

Código:
with DBGrid.DataSource.DataSet do
begin
  Edit1.Text := FieldByName('ID_CASA').AsString;
  Edit2.Text := FieldByName('Descripcion').AsString;
  ...
end;
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
gracias lo intentare a ver ke pasa
Responder Con Cita
  #4  
Antiguo 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
Question

Hola, tengo dos inconvenientes, los edits a los que quiero pasar los datos estan en una forma diferente a la que tiene el grid (estan en la forma mediante la cual se llama al a forma del grid), y el otro es que necesito usar ese cuadro de busqueda en varias ocasiones, no solo ahi.
Gracias
Responder Con Cita
  #5  
Antiguo 05-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola Kao:

Quizás sea esto lo que quieres: que al hacer doble click sobre el Grid, te capture esos datos y a la vez que cierre el Form sobre el que está el Grid.

Si es así, no debes tener muchos problemas, siempre y cuando ese Grid apunte a un DataSet que no esté en dicho Form; dicho de otra forma, lo recomendable es que tengas el DataSet en un DataModule al que tienen acceso los dos Forms que tú comentas. Cuando el usuario hace doble click sobre ese Grid, cierras el Form (bueno, esto tienes que aclararnos si quieres que sea así, estoy suponiendo demasiado), y en el DataSet se queda activo el registro que el usuario "cliqueó", de forma que lo puedes acceder aunque hayas cerrado/destruido ese form.

Espero haberme explicado correctamente, ya me dirás.
__________________
Guía de Estilo
Responder Con Cita
  #6  
Antiguo 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
Exclamation

Si exactamente lo que quiero es eso, al darle doble click se cierre el form y los datos queden en edits, pero eso es justamente lo que no se hacer, mi dataset (que por cierto es un query), ya se encuentra en un datamodule, pero no se como hacer que se conserven los valores despues de cerrar el form, yo pense que no se podia, me podrias hechar una mano con eso??
Responder Con Cita
  #7  
Antiguo 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
Exclamation

Me di cuenta que todavia puedo ser mas especifico

estoy usando un query en el evento Onchange de un edit, para que al ir metiendo letras (un nombre), me muestre resultados parecidos en el grid (un sql que usa LIKE), y el asunto es al hacer doble click en uno o en el resultado.
gracias
Responder Con Cita
  #8  
Antiguo 05-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola Kao, parece que estemos en un Chat, los dos Online aquí.

Si como dices, ese Query lo tienes en un DataModule aparte, llamémosle DATAMOD2, antes que nada el Form desde el que llamas al otro debe tener en su cláusula Uses la unit del DATAMOD2, para acceder a sus objetos. Supongamos que esta es la rutina donde llamas al Form de búsqueda:
Código:
var
  AForm: TFormBusqueda;
begin
  AForm := TFormBusqueda.Create(Self);
  try
    if AForm.ShowModal = mrOk then // el usuario hizo Doble click y validó
    begin
      Edit1.Text := DATAMOD2.Query1.FieldByName('ID_CASA').AsString;
      Edit1.Text := DATAMOD2.Query1.FieldByName('Descripcion').AsString;
    end       
    else begin   // el usuario canceló la búsqueda
      Edit1.Text := '';  // por ejemplo podemos vaciar los Edits
      Edit1.Text := '';
    end 
  finally
    AForm.Free;   // liberamos la memoria del Form de búsqueda    
  end;
end;
Bueno, esta es una forma de hacerlo, el Form de búsqueda al abrirse lanza la consulta y el form que lo llama toma de ella los valores que le interesen si se aceptó la búsqueda. Fíjate que TFormBusqueda debe cerrar la consulta en su método OnDestroy (si es que quieres que se cierre realmente); aun así podemos mirar los valores de la consulta antes de hacer AForm.Free, que es cuando se cerrará realmente.

En TFormBusqueda iría esto:
Código:
procedure TFormBusqueda.Create (Sender: TObject);
begin
  DATAMOD.Query1.Open;
end;

procedure TFormBusqueda.Destroy (Sender: TObject);
begin
  DATAMOD.Query1.Close;
end;
Uff !!! Acabo de ver tu nuevo mensaje, lo del uso del Like que me acabas de decir no influye en lo que estamos tratando.

Por cierto, si entras en la página web de Cadetill, puedes descargarte un componente, llamado algo así como TDBSearchDialog, que sirve para hacer búsquedas, igual te ayuda mirar su código, o el componente entero.
__________________
Guía de Estilo
Responder Con Cita
  #9  
Antiguo 05-07-2003
kao kao is offline
Miembro
 
Registrado: jun 2003
Posts: 13
Poder: 0
kao Va por buen camino
Question

Hola, me ha surgido un nuevo problema, la pantala de busqueda a la que me referia debe ser usada desde muchas forms no solo una, que puedo hacer???
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


La franja horaria es GMT +2. Ahora son las 06:15:17.


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