Página 1 de 1

Un detalle extraño

Publicado: Mar May 06, 2014 1:22 pm
por Bingen Ugaldebere
Buenas XTeam tengo otro detalle insignificante pero extraño.
En un datacontrol de tipo DbEdit y con lPassword = .T. más cPasswordChar
= * si ejecutamos la aplicación aparecen unos bonitos cí­rculos negros
en lugar del * original, todo Ok pero si por código mostramos la contraseña:
::oPassword:lPassword:=!::oPassword:lPassword
::oPassword:Refresh()
::oPassword:SetFocus()
y la volvemos a ocultar con el mismo código, ahora ya no enseña los
cí­rculos sino los * originales que son un poco más feos y no parece
coherente.
Peor todaví­a es cuando muestra los cí­rculos en un campo lEnabled:=.F. y
lo pasas a lEnabled:=.T. y de nuevo a lEnabled:=.F. y quedan una especie
de i latinas con acento íííííí ni siquiera los * originales.
Gracias y perdón por la lata.

Un detalle extraño

Publicado: Jue May 08, 2014 9:48 am
por jfgimenez
Bingen,
> Buenas XTeam tengo otro detalle insignificante pero extraño.
>
> En un datacontrol de tipo DbEdit y con lPassword = .T. más
> cPasswordChar = * si ejecutamos la aplicación aparecen unos bonitos
> cí­rculos negros en lugar del * original, todo Ok pero si por código
> mostramos la contraseña:
>
> ::oPassword:lPassword:=!::oPassword:lPassword
> ::oPassword:Refresh()
> ::oPassword:SetFocus()
>
> y la volvemos a ocultar con el mismo código, ahora ya no enseña los
> cí­rculos sino los * originales que son un poco más feos y no parece
> coherente.
>
> Peor todaví­a es cuando muestra los cí­rculos en un campo lEnabled:=.F.
> y lo pasas a lEnabled:=.T. y de nuevo a lEnabled:=.F. y quedan una
> especie de i latinas con acento íííííí ni siquiera los * originales.
conozco el problema, y créeme que en más de una ocasión he intentado
solucionarlo, pero no ha podido ser. El origen del problema está en el
carácter que usa al principio, el que parece un cí­rculo negro. Ese
carácter no está en el código ASCII ni tiene ningún código ANSI en
ninguna página de códigos. La única forma de mostrarlo es usando
UNICODE. El problema es que para poder usarlo hay que crear el control
usando un procedimiento de ventana con formato UNICODE. No me quiero
extender con los detalles técnicos, por lo tanto lo único que te puedo
decir es que Xailer utiliza ANSI, no UNICODE, porque entonces obligarí­a
a pasarlo todo a UNICODE y habrí­a que hacer muchos cambios en los
programas, no sólo en Xailer.
Ahora bien, cuando se crea el control por primera vez, funciona bien ese
carácter, pero es porque Microsoft hizo una triquiñuela en Windows XP.
Si lo recuerdas, en versiones anteriores de windows siempre se usaban
asteriscos. Pero con XP y la llegada de los temas visuales, MS hizo un
apaño para que al crear el control usara el carácter del cí­rculo. Pero
en cuanto se cambia lo más mí­nimo, se pierde el cí­rculo y se vuelve a
los asteriscos.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Un detalle extraño

Publicado: Jue May 08, 2014 5:07 pm
por Bingen Ugaldebere
Entonces no serí­a más lógico que se usara solo el asterisco ***** que es
más coherente?
Gracias.