FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Dbgrid en Delphi 3
Hola a todos.
Tengo una aplicación hecha, hace muchisimos años, en Delphi 3. Estoy actualizando el programa, metiendo codigo nuevo, y me gustaría hacer lo siguiente, y después de dar muchas vueltas, no lo he conseguido, a ver si sois tan amables de echarme un cable. Tengo una base de datos en paradox, y conectada a un DBGrid, uno de los campos es un comentario, y lo que quiero hacer es mientras el usuario teclea el comentario, saber en todo momento cuantos caracteres tiene ese comentario, por si llega a un límite determinado pues abrir otra ventana para que pueda escribir un comentario mayor. Lo he intentado consultando sobre el registro pero hasta que el usuario no grabe el registro no sabré la nueva longitud, y ya es tarde, debo saberlo antes de que grabe. Espero que me hayáis entendido. Y gracias anticipada. |
#2
|
|||
|
|||
La cuestión es como accedo directamente a lo que se teclea para contar el nº de caracteres, y si llega por ejemplo a 20, pues abro una ventana.
En fin, espero que alguien me oriente como hacerlo. Saludos. |
#3
|
||||
|
||||
Hola,
Lo que se teclea se teclea en algún sitio, es decir, en algún componente tipo "TDbMemo" o algo así. Ahora bien, creo que sería a este componente al que tendrías que "preguntar" por el texto que contenga en un momento dado. El propio componente contará con eventos como "OnKeyPress" que podrán echarte una mano. El caso es que no quiero asegurarlo del todo, porque, lo mío no son las bases de datos y ni los componentes "TDb*", o sea, que, estoy suponiendo que funcionan de forma parecida a los "normales", en lo que toca a acceder a sus propiedades, eventos, etc. |
#4
|
||||
|
||||
dvd2000,
Revisa este código: El código anterior muestra ejemplos de como controlar la longitud de un texto en un control de entrada. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 06-12-2012 a las 20:00:42. |
#5
|
|||
|
|||
Gracias por los aporte.
He probado los siguiente, según indicaciones de nlsgarcia, pero en tiempo de ejecución me sale siguiente error: Access violation at address 040E915 in module prueba.exe. Read of Address 00000008. procedure TFprincipal.DBDatosKeyPress(Sender: TObject; var Key: Char); begin if DBdatos.Fields[DBDatos.SelectedIndex]= (DBDatos.DataSource.DataSet.FieldByName('Proveedor')) then begin if DBDatos.Controls[0] is TInPlaceEdit then with DBDatos.Controls[0] as TInPlaceEdit do begin if (GetTextLen >= 10) and (Key <> #8) then begin Key := #0; ShowMessage('Máxima longitud alcanzada'); end; end; end; end; No sé donde puede estar el error. Gracias por vuestro interes. |
#6
|
||||
|
||||
dvd2000,
Cita:
Cita:
La aplicación incluye la BD para que lo pruebes con facilidad. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 06-12-2012 a las 21:51:45. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi for PHP y DBgrid | dante148 | Internet | 1 | 04-10-2011 22:56:15 |
DbGrid en Delphi 7 | drakkon | Varios | 3 | 27-12-2007 04:42:08 |
Delphi for php- dbgrid | omarifr | PHP | 2 | 12-10-2007 17:02:54 |
DBGrid en delphi 5 | ibbeth | SQL | 1 | 03-01-2006 02:38:05 |
Delphi + MySQL (DBGrid) | gringo | Conexión con bases de datos | 5 | 23-10-2004 04:44:31 |
|