![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
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. |
|
#2
|
||||
|
||||
|
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. |
|
#3
|
||||
|
||||
|
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. |
|
#4
|
|||
|
|||
|
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. |
|
#5
|
||||
|
||||
|
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. |
|
#6
|
|||
|
|||
|
Gracias nlsgracia, ya he visto tu ejemplo y es lo que quiero hacer. Es decir Dbgrid1 de tu ejemplo se comporta como yo quiero que se comporte.
Ahora bien, no sé por que razón a mí me sale el error de : Access violation at address 040E915 in module prueba.exe. Read of Address 00000008.. en la siguiente línea: if DBgrid1.Controls[0] is TInPlaceEdit then Justo en ese punto salta el error. Supongo que puede ser por tema de versiones de Delphi, tu lo haces con la 7 y yo estoy con la 3. El compilador no da error, y en ejecución pues sí que me salta este error. Te agradezco mucho el interés mostrado. Saludos. |
|
#7
|
|||
|
|||
|
Por fin, solucionado.
Es curioso, pero de esta forma me da error. procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if DBGrid1.Fields[DBGrid1.SelectedIndex]=(DBGrid1.DataSource.DataSet.FieldByName('Author')) then begin if DBGrid1.Controls[0] is TInPlaceEdit then with DBGrid1.Controls[0] as TInPlaceEdit do begin if (GetTextLen >= MaxLongComment) and (Key <> #8) then begin Key := #0; ShowMessage('Máxima longitud alcanzada'); end; end; end; end; Y de la siguiente forma, funciona: Columna:=DBrejilla.SelectedIndex; // Averigua numero de columna posicionada. if columna=1 then begin if dbrejilla.Controls[0] is TInPlaceEdit then with dbrejilla.Controls[0] as TInPlaceEdit do begin if (GetTextLen >= 20) and (Key <> #8) then begin Key := #0; ShowMessage('Máxima longitud alcanzada'); end; end; end; Perdon por la indentación, pero no logro que se respete. Gracias a todos y en especial a nlsgarcia. Última edición por dvd2000 fecha: 08-12-2012 a las 15:19:59. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|