Página 1 de 1

Problema con nMaxlength

Publicado: Mié Feb 05, 2014 10:16 pm
por martindelangel
En la Versión 3.1 y 3.2
La Propiedad nMaxlength no funciona con TDBEdit y TDBMaskEdit
si por ejemplo le pongo nMaxlength:=3 a un control, puedo escribir la cantidad de caracteres que desee sin que detenga.
pero si en el evento Create del Control hago esto , si funciona:
oSender:cPicture:=REPL('X',3)
De esta manera la captura no pasa de los 3 carateres.
Por el contrario con el Control TDBMemo si funciona.
Algún Bug de Harbour ?
Saludos....

Problema con nMaxlength

Publicado: Jue Feb 06, 2014 11:12 am
por ignacio
martindelangel escribió el mié, 05 febrero 2014 22:16En la Versión 3.1 y 3.2
La Propiedad nMaxlength no funciona con TDBEdit y TDBMaskEdit
si por ejemplo le pongo nMaxlength:=3 a un control, puedo escribir la cantidad de caracteres que desee sin que detenga.
pero si en el evento Create del Control hago esto , si funciona:
oSender:cPicture:=REPL('X',3)
De esta manera la captura no pasa de los 3 carateres.
Por el contrario con el Control TDBMemo si funciona.
Algún Bug de Harbour ?
Saludos....
Los controles tipo TDbEdit y TDBMaksEdit establecen su propiedad nMaxLength automáticamente al valor nLen del objeto TDataField que se enlazan. Hay tres formas de evitar este comportamiento (por orden de preferencia):
1) Utilizar la propiedad cPicture del control
2) Modificar la propiedad TDataField:nLen
3) Modificar el tamaño del campo en la base de datos
Saludos

Problema con nMaxlength

Publicado: Sab Feb 08, 2014 6:42 am
por martindelangel
Hola Ignacio:
La unica propiedad del DataControl que hace que se detenga la captura es cPicture.
nLen no funciona.
te platico lo que pasa:
Tengo una Tabla de MySQL , una columna con Varchar(3)
Campo: ::oPAISORIGEN
si pongo un MsgInfo(::oPAISORIGEN:nLen) me muestra 9
Porque ?
La longitud del campo es Varchar(3)
No deberia la propiedad nLen ó nSqlLen ser de 3 ?
Marca 9 y efectivamente la captura se detiene al noveno caracter.
Ahora si hago lo que dices :

::oPAISORIGEN:oDataField:nLen:=3
La captura no se detiene al tercer caracter.
Solo si hago esto en el evento Create del Control
oSender:cPicture:=REPL('X',3) , Si Funciona , se detiene al tercer caracter.
seria ideal que la propiedad nMaxLength funcionara y asi evitar
crear mas codigo para limitar la longitud de la captura.
Por otro lado es impractico Delimitar la captura con la propiedad cPicture.
Saludos...

Problema con nMaxlength

Publicado: Sab Feb 08, 2014 1:41 pm
por ignacio
Hola,
Será mejor que mandes un proyecto de ejemplo.
Un saludo