Problema con propiedad MAXLENGTH de control TEXTBOX
Posted: Thu Apr 10, 2014 3:57 pm
Estoy queriendo lograr pasar de un TEXTBOX a otro control, cuando el mismo se autocomplete, o sea, si en un TEXTBOX tengo definido el MAXLENGTH como 7, al llegar al 7mo caracter pase al siguiente control, pongo un ejemplo más abajo.
La función PasaCtrl(), devuelve siempre falso, y cuando quise comprobar si tenia algún valor la propiedad maxlength del textbox, hice algo como esto dentro de la función PasaCtrl()
msgbox( valtype( getproperty( cForm,cCtrl,"maxlength" ) ) )
y me devolvió "U"
Es un bug de HMG o hay alguna otra forma de saber la longitud de un TEXTBOX previamente definido con MAXLENGTH.
Code: Select all
#include "hmg.ch"
/***/
function Main()
local DesCli
DesCli:=space(5)
cArti :=space(16)
DEFINE WINDOW frmNombObje ;
AT 0,0 ;
WIDTH 550 ;
HEIGHT 400 ;
TITLE 'Paso a otro control automáticamente' ;
MAIN
@ 35,15 LABEL lblDesCli ;
VALUE 'Desde' ;
WIDTH 50
@ 35,75 TEXTBOX txtDesCli ;
VALUE DesCli ;
WIDTH 70 ;
TOOLTIP 'Ingrese el Cliente desde el cual desea que se emita el informe' ;
MAXLENGTH 7 ;
UPPERCASE ;
ON CHANGE if( PasaCtrl(),frmNombObje.txtArti.setfocus,Nil )
@ 65,15 LABEL lblArti ;
VALUE 'Artículo' ;
WIDTH 50
@ 65,75 TEXTBOX txtArti ;
VALUE cArti ;
WIDTH 130 ;
TOOLTIP 'Ingrese el Artículo desde el cual desea que se emita el informe' ;
MAXLENGTH 17 ;
UPPERCASE
@ 230,340 COMBOBOX cbo_Orden1 ;
WIDTH 100 ;
ITEMS { "Cliente","Saldo","Descripción" } ;
VALUE 1
DEFINE BUTTON btnAcepta
ROW 300
COL 10
CAPTION 'Aceptar'
ACTION Procesar()
WIDTH 100
END BUTTON
DEFINE BUTTON btnSalir
ROW 300
COL 120
CAPTION 'Salir'
ACTION frmNombObje.release()
WIDTH 100
END BUTTON
END WINDOW
CENTER WINDOW frmNombObje
ACTIVATE WINDOW frmNombObje
Return Nil
/***/
static Function Procesar()
msgbox( "En desarrollo" )
retu Nil
/***/
static Function PasaCtrl()
local cForm,cCtrl
cForm:=thiswindow.name
cCtrl:=This.name
if len( getproperty( cForm,cCtrl,"value" ) ) = getproperty( cForm,cCtrl,"maxlength" )
retu .t.
end if
retu .f.msgbox( valtype( getproperty( cForm,cCtrl,"maxlength" ) ) )
y me devolvió "U"
Es un bug de HMG o hay alguna otra forma de saber la longitud de un TEXTBOX previamente definido con MAXLENGTH.