Página 1 de 1

Error en propiedad cargo con bloque de codigo

Publicado: Mar Abr 23, 2013 4:28 pm
por Gabo
Buen dia
Estoy usando controles tGlassBtn. y al poner el siguiente valor en la propiedad cargo
{ |lMay| IF( lMay, "Q", "q" ) }
Me marca el siguiente error de compilacion
TpvKeyBoard.xfm(54) Error E0030 Syntax error "syntax error at 'Q'"
TpvKeyBoard.xfm(69) Error E0030 Syntax error "syntax error at 'W'"
TpvKeyBoard.xfm(99) Error E0030 Syntax error "syntax error at 'R'"
Al checar el archivo XFM
xailer lo pone de la siguiente manera

WITH OBJECT ::oBB_Y := TGlassBtn():New( ::oGBLetras )
:SetBounds( 424, 8, 80, 70 )
:Cargo := "{ |lMay| IF( lMay, "Y", "y" ) }"
:cText := "Y"
:Create()
END

Si edito el archivo XFM quitandole las comillas al bloque de codigo. ya compila bien.
Estoy usando Xailer 2.7.5
Un Saludo

Error en propiedad cargo con bloque de codigo

Publicado: Mar Abr 23, 2013 6:23 pm
por Gabo
Yo Mismo
Si se cambia por comillas simple. Si compila bien si errores

WITH OBJECT ::oBB_Y := TGlassBtn():New( ::oGBLetras )
:SetBounds( 424, 8, 80, 70 )
:Cargo := "{ |lMay| IF( lMay, 'Y', 'y' ) }"
:cText := "Y"
:Create()
END

Error en propiedad cargo con bloque de codigo

Publicado: Mar Abr 23, 2013 9:03 pm
por joselalinf
Gabriel,
¿puedo preguntar para qué es ese bloque de código?
Saludos,
José Lalí­n

Error en propiedad cargo con bloque de codigo

Publicado: Mié Abr 24, 2013 12:29 am
por Gabo
Que tal JoseL
Claro que si.. Estoy haciendo un teclado. para una aplicacion Tactil. la intencion es activar Mayusculas y Minusculas. en el teclado.
Al momento de presionar el Boton "MAY" ejecuta el bloque de codigo de todos los botones y pone las letras del teclado en pantalla a may y si presiono "MIN" regresa las letras a min.
Es la unica forma que se me ocurrio. Poner un bloque de codigo a todos los botons de las letras. Quizas haya otra forma mas facil. Pero la luz me llego de esa forma
Un Saludo

Error en propiedad cargo con bloque de codigo

Publicado: Mié Abr 24, 2013 2:12 pm
por joselalinf
Gabriel,
imaginaba que estabas haciendo algo así­. Puedes simplificarlo sin usar
cargo ni los bloques de código. En el OnClick() de "MAY" puedes recorrer
los botones con ::SetMayusculas( .T. ) y en el OnClick() de "MIN" lo mismo
pero a minúsculas ::SetMayusculas( .F. )
METHOD SetMayusculas( lMayus )
FOR EACH oButton IN oForm:aControls
IF oButton:IsKindOf( "TGlassBtn" )
IF Upper( oButton:cText ) >= "A" .AND. Upper( oButton:cText ) <= "Z"
IF lMayus //Pulsado MAY
oButton:cText := Upper( oButton:cText )
ELSE // Pulsado MIN
oButton:cText := Lower( oButton:cText )
ENDIF
ENDIF
ENDIF
NEXT
RETURN Nil
Está escrito al vuelo pero deberí­a funcionar tal cuál si quieres probarlo.
Saludos,
José Lalí­n

Error en propiedad cargo con bloque de codigo

Publicado: Mié Abr 24, 2013 3:14 pm
por Gabo
JoseLalin
Muchas Gracias por tu sugerencia. ya quedo implementada y mi codigo mejorado.
Un Saludo