24 de mayo de 2006

FoxPro Tips: EditorOptions de VFP

Artículo original: FoxPro Tips: VFP's EditorOptions
http://rickschummer.com/blog/2006/03/foxpro-tips-vfps-editoroptions.html
Autor: Rick Schummer
Traducido por: Ana María Bisbé York

Si es autor de cualquier artículo o documento con ejemplos escritos en Visual FoxPro comprenderá rápidamente la necesidad de suprimir el formato enriquecido incluido en VFP 9 al copiar al portapapeles. Al inicio, me gustó mucho esta posibilidad para mis documentos técnicos; pero al trabajar para una conferencia, plantillas de sesiones, plantillas de revistas y plantillas de publicaciones para Hentzenwerke Publishing me sentí frustrado porque rompe con los estilos de varios editores. En VFP 9 beta esta característica era parte del producto y no configurable; pero las voces de los beta testers se escucharon alto y claro. Queremos una forma de eliminar esto.

He ayudado a muchos desarrolladores a desconectar esta característica, y hoy mientras trabajaba en mi sesión sobre control de errores para GLGDW 2006, me di cuenta que lo había conectado nuevamente (es bueno, cuando comparto código en correos o en publicaciones en foros) y lo necesito desconectar mientras trabajo en mis presentaciones. Tengo un programa para realizar esta configuración. Este es el código:
* Interruptor para el formato enriquecido al portapapeles
IF 'X' $ _vfp.EditorOptions
  * Desactiva esta configuración
  _vfp.EditorOptions = STRTRAN(_vfp.EditorOptions,"X", SPACE(0))
ELSE
  * Activa esta configuración
  _vfp.EditorOptions = _vfp.EditorOptions + 'X'
ENDIF
Esto lo puede colocar en un elemento del menú del desarrollador, o barra de herramientas, o solamente ejecútelo desde la ventana de Comandos.

Bonus Tip

Al revisar el código recordé otro tip para compartir. IntelliSense tiene una característica llamada C++ Operator Expansion. Yo la utilizo todo el tiempo. Si tiene una variable como lcErrorString y desea concatenar algún texto a la cadena existente debe entrar lo siguiente en el editor de programa:
lcErrorString+=
Luego, oprima la barra espaciadora y verá:
lcErrorString = lcErrorString +  
Está listo para escribir el resto de la lógica para realizar la concatenación. Existen varios operadores C++ que trabajan con IntelliSense en VFP
lnCounter++
lnCounter--
lnCounter+=
lnCounter-=
lnCounter*=
lnCounter/=
La razón que me inspiró a escribir este bonus tip es la situación donde tengo object.Property y deseo concatenar o incrementar, como _vfp.EditorOptions. Si tiene este código en el editor de programa:
_vfp.EditorOptions+=
Y oprime la barra espaciadora, no ocurre nada. Reporté esto como un bug en una de las betas. La solución es sencilla; pero tiene que recordarlo al escribir el código. Incluya un espacio entre el nombre de la propiedad y el operador, luego oprima la barra espaciadora después del operador.
_vfp.EditorOptions +=
¡ Disfruten del fin de semana !

Nota de la traductora:

Como comentario a este post, el MVP Andy Kramek señaló que, aunque para aplicaciones VFP el espacio ES necesario; no es siempre así para propiedades de objetos, al probar el siguiente código, veremos que no hace falta.
LOCAL loX as CUSTOM
loX.Height+=
Rick Schummer agradece la corrección. En cualquier caso, la sugerencia de dejar el espacio en blanco entre propiedades de objetos y el operador funciona bien.

Gracias a ambos !!

No hay comentarios. :

Publicar un comentario