In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TMaskEdit:lTrimSpaces (bug?)

Foro público de Xailer en español
User avatar
Hurricane
Posts: 109
Joined: Tue Mar 24, 2015 10:21 am
Location: Brasil
Contact:

TMaskEdit:lTrimSpaces (bug?)

Postby Hurricane » Mon Dec 05, 2016 4:09 am

El comportamiento esperado, no retire ningún espacio.
Dependiendo del tipo de máscara, la eliminación de este espacio a la derecha:

Code: Select all

METHOD FormInitialize( oSender ) CLASS TForm1
   ::oMaskEdit2:lTrimSpaces:=.F.
   ::oMaskEdit3:lTrimSpaces:=.F.

   ::oMaskEdit2:Value   :=Space(11)
   ::oMaskEdit2:cPicture:='@R 999.999.999-99' // BUG
   
   ::oMaskEdit3:Value   :=Space(20)
   ::oMaskEdit3:cPicture:='@!' // correcto

RETURN Nil

METHOD FormKeyUp( oSender, nKey, nFlags ) CLASS TForm1
   ::oLabel2:cText:=Str(Len(::oMaskEdit2:Value))  // BUG / Siempre se debe devolver 11 caracteres
   ::oLabel3:cText:=Str(Len(::oMaskEdit3:Value))  // correcto, siempre devuelve 20 caracteres

RETURN Nil


Esto sólo la eliminación de los espacios de la derecha (mantener los espacios izquierdo), mover el cursor a la mitad de editar y comienza a escribir.
Con otras máscaras que ocurrirá lo mismo problema, ex: '@R !!!.!!!.!!!-!!'

Nota:
En la versión de Xailer Enterprise no contiene el código fuente de esta parte.
Hay otro error que informará más adelante.
Xailer version 4.0.2/MinGw
Attachments
TrimSpace.zip
(44.82 KiB) Downloaded 46 times
Last edited by Hurricane on Mon Dec 05, 2016 12:16 pm, edited 2 times in total.
jvtecheto
Posts: 123
Joined: Thu Dec 19, 2013 1:18 pm

Re: TMaskEdit:lTrimSpaces (bug?)

Postby jvtecheto » Mon Dec 05, 2016 10:23 am

Buenos días Hurricane:

Lo he probado y yo creo que no es un bug.
En el Control TMaskEdit cuando aplicas la mascara :

::oMaskEdit2:cPicture:='@R 999.999.999-99'

Le dices que vas a introducir solo números y inicialmente no hay ningún numero luego la longitud es 0

sin embargo con la mascara:

::oMaskEdit3:cPicture:='@!'

Le dices que esperas solo caracteres y como le has dicho

::oMaskEdit3:value := space(20)

con esto tienes 20 caracteres blancos introducidos luego la longitud es 20 inicialmente.

¿Porque crees que la longitud debería ser 11 sin introducir ningún numero.?

Saludos.

Jose Vte.
User avatar
Hurricane
Posts: 109
Joined: Tue Mar 24, 2015 10:21 am
Location: Brasil
Contact:

Re: TMaskEdit:lTrimSpaces (bug?)

Postby Hurricane » Mon Dec 05, 2016 12:06 pm

Buenos dias Jose,

Perdóname, pero esta equivocado, esta operación no depende máscara, por favor, consulte la documentación (lTrimSpaces).
Esto sólo la eliminación de los espacios de la derecha (mantener los espacios izquierdo), mover el cursor a la mitad de editar y comienza a escribir.
Con otras máscaras que ocurrirá lo mismo problema, '@R !!!.!!!.!!!-!!'

Se espera que el comportamiento y se utiliza, sobre todo los que vienen de la consola (Clipper/Harbour) facilita la consulta en DBF, etc. (DBSeek(oCPF:value))
El tamaño de la cadena debe ser mantenida (teniendo en cuenta la máscara), de lo contrario lTrimSpaces no tiene sentido.
Cassiano de Oliveira
Posts: 475
Joined: Tue Jul 24, 2012 10:21 pm

Re: TMaskEdit:lTrimSpaces (bug?)

Postby Cassiano de Oliveira » Tue Dec 06, 2016 3:57 pm

Concordo com ambas explicações, mas a forma q o Eric (Hurricane) explicou, no meu ponto de vista, fica mais transparente pra quem esta migrando.

[]'s
User avatar
ignacio
Site Admin
Posts: 8563
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: TMaskEdit:lTrimSpaces (bug?)

Postby ignacio » Tue Dec 06, 2016 9:27 pm

Buenos días,

Xailer desde el inicio de los tiempos. es decir, desde la versión 1.0 NO HA RESPETADO la característica de Clipper de poner tantos espacios por la derecha como longitud tenga el campo en la tabla a la hora de editarlo. Nunca ha sido así, y lo siento, pero nunca lo será. Entendemos que es absolutamente inconsistente con la manera que Windows edita con sus controles. No obstante, la propiedad lTrimSpaces lo que hace es además quitarlos en el caso de que el usuario se le haya ocurrido ponerlos. Si necesita rellenar las cadenas con espacios le sugiero que le eche un vistazo a la función Padr()

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
Hurricane
Posts: 109
Joined: Tue Mar 24, 2015 10:21 am
Location: Brasil
Contact:

Re: TMaskEdit:lTrimSpaces (bug?)

Postby Hurricane » Tue Dec 06, 2016 11:45 pm

Sorry, but lTrimSpaces is inconsistent with the purpose described in the documentation and what is expected. It's just basic logic and no comparison with Clipper, Windows controls or anything else.

It is a bug, if you created this property and set it to FALSE, it is because you do not want it to remove the spaces, but you still remove spaces (the right) depending on the mask, this has no logic (so why does this property exist ?). There is another worse bug (lTrimSpaces FALSE), which blocks Maskedit editing.

Ignacio, please, think better. If lTrimSpaces involves a high complexity similar to getsys, fivewin, hwgui, etc, then I can give a good tip, the adjustment is very useful, never a fad. I promise not to ask for anything else (this year :D)
But if you do not want to adjust, we can not insist, it will be a great disappointment. So please provide us with the complete MaskEdit source code.

Note:
For some it seems banal, but by using mask, it is not simply using PADR (oMsk:value, nSize), is not efficient and involves high complexity. My function is efficient for this form of use: varGet(oMsk, nSize).
User avatar
ignacio
Site Admin
Posts: 8563
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: TMaskEdit:lTrimSpaces (bug?)

Postby ignacio » Wed Dec 07, 2016 10:50 am

Sorry, but is a not bug, it's really a feature! Thread closed (at least on my side).

Regards,
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info

Return to “Spanish”