FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Campo memo
Posts: 189
Joined: Wed Apr 05, 2006 09:48 PM
Campo memo
Posted: Tue Jul 10, 2007 04:39 PM

Hola amigos

Existe alguna forma de limitar el número de  caracteres en un Get en un campo del tipo  memo   ?

El get esta creado como Memo , no le puedo poner un picture.

un saludo

Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Campo memo
Posted: Tue Jul 10, 2007 05:07 PM
Tengo hecho lo siguiente y no me va mal, aunque tiene sus limitaciones. He modificado la clase TMultiGet de la siguiente forma:

1º He añadidio tres datas:
DATA MaxLong AS NUMERIC INIT 0
DATA nChars AS NUMERIC INIT 0
DATA bPassMax

2º He modificado el METHOD KeyChar:
Añadiendo, despues de las líneas: if nKey == VK_TAB ... endif, lo siguiente:

IF ::MaxLong > 0 .AND. nKey > 31 .AND. LEN( ::cText ) >= ::MaxLong
++::nChars
MsgBeep()
IF ::nChars = 4
IF ::bPassMax # NIL
EVAL(::bPassMax,::MaxLong)
ELSE
MSGSTOP( "ESTE CAMPO NO ADMITE MÁS DE "+ALLTRIM(STR(::MaxLong))+" CARACTERES", ;
" SE INTENTÓ EXCEDER LONGITUD MÁXIMA" )
ENDIF
::nChars := 2
ENDIF
RETURN 0
ENDIF
::nChars := 0

Si te fijas, tan sólo es necesario el DATA MaxLong, los demás son accesorios. nChar es para que el mensaje sólo salga una vez de cada dos, después del cuarto intento y no esté dando la lata a cada instante. En cuanto a bPassMax, es para poder ejecutar una accion alternativa al MSGSTOP.

Pruebalo a ver si te sirve.

Saludos.
Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 189
Joined: Wed Apr 05, 2006 09:48 PM
Campo memo
Posted: Tue Jul 10, 2007 07:54 PM

Muchas Gracias amigo funciona perfecto era lo que estaba buscando.

un saludo

Continue the discussion