Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como devolver el texto de de una celda del bdgrid (https://www.clubdelphi.com/foros/showthread.php?t=40074)

jhcaboverde 06-02-2007 20:52:57

como devolver el texto de de una celda del bdgrid
 
el problema que tengo es que en un form tengo un dbgrid, al hacer click en el necesito quedarme con el valor de la celda para ponerlo en un form que se abre a la vez, el grid tiene un datasource y a su vez se alimenta de un adotable.

en otras palabras quiero que al hacer click en el evento oncellclick quedarme con el valor de la celda y ponerlo en un campo de otra form.

Bicho 06-02-2007 21:03:02

Hola,

¿y que problema tienes?

Código Delphi [-]
procedure Tform1.DBGrid1CellClick(Sender : TObject);
var MiVariable : String;
begin
  MiVariable := DBGrid1.Cells[DBGrid1.Col, DBGrid1.Row]; //El valor de la celda seleccionada
end;

Alomejor, no te he entendido bien, quizá podrías expresarte de otra manera si no corresponde con la solución que te dí.

Saludos

Caral 06-02-2007 21:08:07

Hola jhcaboverde
Primero te aconsejo que no habras tantos hilos, se entiende mejor si se lleba uno solo.
Con respecto a lo que necesitas, es usual pensar en el grid como algo que contiene informacion, este es un mal generalizado.
El grid solo muestra la informacion, en este caso la informacion esta en el Adotable, transferida por el dataset, del datasource al dbgrid, bueno no necesariamente en ese orden.
Osea que si necesitas transferir informacion de un lado a otro, no pienses en el dbgrid, piensa en el adotable o el datasorce, estos son los que manejan la informacion.
Asi podras hacer una consulta que se podra entender mejor.
Saludos

ArdiIIa 07-02-2007 14:28:02

Cita:

Empezado por jhcaboverde
el problema que tengo es que en un form tengo un dbgrid, al hacer click en el necesito quedarme con el valor de la celda para ponerlo en un form que se abre a la vez, el grid tiene un datasource y a su vez se alimenta de un adotable.

en otras palabras quiero que al hacer click en el evento oncellclick quedarme con el valor de la celda y ponerlo en un campo de otra form.

A ver si lo entiendo: Un DbGrid está asociado a una tabla y cada vez que pulsas sobre el DbGrid (la tabla se mueve,obviamente) pues desde el otro form lo único que tienes que hacer es leer es registro activo en ese momento y nada más

¿Lo he entendido bien?

Bicho 07-02-2007 14:38:00

Pido disculpas por mi parrafada anterior, me he colado de mala manera (gracias ArdiIIa por el tirón :p ), no había caido.

Ahí va otra :D

Si tienes enlazado el DBGrid a un DataSource puedes usar el DataSource para que te devuelve el valor actual, no?

Código Delphi [-]
DataSource1.DataSet.FieldByName('nombre_columna').AsString;

¿La he vuelto a cagar? :eek: :(

Saludos

Lepe 07-02-2007 15:12:34

Si las consultas son dinámicas (mismo grid para varias consultas) y las columnas no son siempre las mismas, puedes usar el evento OnMouseDown, en ese evento tienes el parámetro Column:TColumn y puedes acceder tal que así:
Código Delphi [-]
valor :=  Colum.Field.AsString;

// el nombre del campo lo tienes en 2 sitios:
colum.FieldName
ó 
column.Field.FieldName

Saludos


La franja horaria es GMT +2. Ahora son las 21:26:09.

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