Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   extraer un dato de un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=19758)

detybel 24-03-2005 17:36:05

extraer un dato de un dbgrid
 
hola ...
tengo tengo un problema en la extraccion de datos de un dbgrid, lo que busco es que cuando realice un doble click en una fila me mande en dato donde se encuentra ubicado´{o mejor el codigo_id que esta relacionado con la tabla de la cual en producto el dbgrid..

no se si pueden ayudarme gracias.....

unreal4u 24-03-2005 17:41:26

a ver si te entendi bien: cuando haces doble clic en una celda, necesitas el "código_id" de esa celda, o sea, puedes tener varios campos, haces clic en cualquiera de ellas, pero sólo necesitas el código?? Eso es??

detybel 24-03-2005 17:49:52

ok
 
:rolleyes: si!!!!!!!!, eso es exactamente lo que quiero.....
o si no darme una direccion donde pueda profundizar mar mas sobre los dbgrid...

Dantael 25-03-2005 01:30:15

en el evento en el evento!
 
Hola para seleccionar el campo de el dbgrid si lo tienes ligado a una tabla esto es lo que debes de hacer suponiendo que lo quieras mostrar en un edit:

Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject); //evento doble click del dbgrid
begin
edit1.text:=tabla1['Campo']; //esto es lo que debes poner
end;

//si lo haces desde un query el procedimiento es igual
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if not query1.isempty then                //para combrorar el query tenga datos
edit1.text:=query1['campo']; //esto es lo que debes poner
end;

Saludos

cuburu 26-03-2005 06:01:45

Creo tener lo que buscas
 
Bueno, en realidad si entendi bien tu pregunta lo que necesitas es extraer un dato del registro del que te encuentras actualmente ¿verdad?... si es asi, pues es muy sencillo, lo único que tienes que hacer es conocer el nombre de la columna de la que auiqres saber el dato. Como te encuentras en ese momento apuntando a un registro no necesitas volver a buscarlo en la tabla, solo le tienes que decir a delphi que ingrese al campo por medio de la propiedad TField que puedes encontrar en los componentes TTable y TQuery.

Ya para no hacertela cardiaca en los eventos del DBGrid se encuentra uno llamado OnDblClick el cual respunde a tu primer problema de captura de doble click, ahora lo que tienes que hacer es colocar el siguiente código que le dice a Delphi lo que te explique anteriormente:

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
Edit1.Text := Table1.FieldByName('nombre del campo').AsString;
end;


En lugar de asString puedes usar asInteger si tu campo es entero, asFloat si tu campo es Real o cualquier otro. Puedes utilizar asString y Delphi realiza la conversión interna, es decir, si tu campo es de tipo Fecha al extraerlo con el formato asString Delphi realiza la conversión para que puedas obtener tu dato en formato String. Para más información consultate la ayuda del Delphi.

P.D. este código lo utiliza en Delphi 5. No se qué tanto varie en otras versiones, suerte y chau ;>


La franja horaria es GMT +2. Ahora son las 19:52:43.

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