Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Valor de una celda de un Tdbgrid (https://www.clubdelphi.com/foros/showthread.php?t=51840)

jose.mendez 31-12-2007 21:33:09

Valor de una celda de un Tdbgrid
 
Hola, tengo delphi 3 y necesitaria poder leer el valor de una celda de un tdbgrid, pero no el valor que tiene, ni el nuevo sino el que tecleo pero aún no esta sigando. Me explico la idea es: escribo algo en esa celda y pulso el boton asociado a esa celda EditButton, si hago dentro de Editbuttonclick:

temp:= reja.SelectedField.Text; "obtengo el valor vacio o el que estaba antes como valor de esa celda, pero no el temporal mientras no se graba en el campo.

Pero el que acabo de escribir y por el que quiero buscar en otra bbdd no se como obtenerlo pues si lo almaceno si puedo verlo con:
temp :=tabla.FIELDBYNAME('campo').ASstring; pues ya esta almacenado en la tabla y necesitaba poder saber el que esta todavía sin asignar.

Cómo puedo obtener ese valor temporal cuando pulso el botón EditButton asociado a la celda ??? , ese que no esta todavía asignado en el campo???

un saludo

droguerman 31-12-2007 23:28:55

bueno la idea, no tengo código a la mano para explicarte.

cuando estás empiezas a editar una celda no lo haces directamente sobre el grid, sino que lo haces sobre un componente llamado InplaceEditor el cual es un textbox y ocupa la misma posición y tamaño de la celda con lo cual da la sensación que estás sobre el grid.

entonces lo que hay que hacer (me gustaría decirte como pero no tengo las fuentes del vcl conmigo) es obtener el text del inplaceEdit y no de la celda.

saludos

Al González 01-01-2008 12:11:31

¡Hola a todos!

Como dice Droguerman, la clave es usar la propiedad InplaceEditor.Text de la rejilla. Viendo la ayuda de Delphi, parece ser que TDBGrid.InplaceEditor es una propiedad protegida, por lo que quizá convenga emplear un molde de acceso o incluso una clase interpuesta (de lo cual hay algunos ejemplos en los foros).

No dejes de retroalimentar el hilo José.

Un abrazo iniciando el año.

Al González. :)

jose.mendez 01-01-2008 18:21:36

Conseguido
 
OK gracias, usando:

type
THackGrid = class(TDBGrid);.....
....
THackGrid(DBGrid1).InplaceEditor.Text;


Consigo recuperar el valor temporal de esa celda.

gracias.


La franja horaria es GMT +2. Ahora son las 12:12:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi