Substitución macro

04/07/2003 - 00:50 por Limberg | Informe spam
Hola amigos.

¿Cómo puedo ejecutar una substitución macro en vb?
* Aqui les mando un pequeño código de vfp, (& ejecuta una substitución
macro)
* VALUE es igual a TEXT en vb.

cmd = "THISFORM."+ALLTRIM(This.Parent.NametxtIndex)+".VALUE"
IF THIS.Parent.DataTypeIndex = "C"
THIS.PARENT.VALUE = ALLTRIM(&cmd)
ELSE
THIS.PARENT.VALUE = ALLTRIM(STR(&cmd))
ENDIF

Saludos
Limberg.
 

Leer las respuestas

#1 Leonardo Azpurua
04/07/2003 - 06:48 | Informe spam
Hola, Limberg:

VB no tiene nada parecido a la sustitución de macros en el sentido de xBase.

No entiendo por completo el ejemplo en vfp (trabajé poco con xBase, y hará
cerca de 15 años, cuando casi el único uso del punto era para referirse a
una columna dentro de un área, como sinónimo de "->"), pero si THISFORM se
refiere a algún tipo de contenedor de controles (sugerido por la
construcción THISFORM.identificador.VALUE), puedes cambiar la referencia por
THISFORM.Controls(Trim(This.Parent.NameTxIndex)).VALUE. Casi todos los
contenedores exponen la propiedad Controls, que te permite acceder por
nombre a cualquiera de sus elementos. Aun cuando no la expusieran, no sería
difícil agregarla tu mismo en los puntos donde lo necesites.

Otro reemplazo para los macros es el polimorfismo: dependiendo de una
condición, asignas a una variable de tipo objeto cuya clase está definida
por una interfaz, una instancia de una clase concreta que implementa esa
interfaz y que ofrecela funcionalidad requerida.

Para tareas más complejas puedes hacer uso del Script Control, que te
permite expandir la idea de la macrosustitución a niveles inimaginables en
los viejos tiempos.

Cuando llegué a VB, despues de más de diez años trabajando en C "sucio",
añoraba la posibilidad de utilizar apuntadores de funciones, y de emplear
argumentos variables en número y tipo. El uso de interfaces polimórficas
solucionó el primer problema, usar argumentos de tipo Variant y ParamArray()
solucionó el segundo. Al final, la tecnología de Scripting me abrió un mundo
insospechado.

Pero, desafortunadamente, no tenemos en VB nada parecido a la macro
sustitución de xBase. Donde la necesites, deberás agregarla tu.

Salud!

Leonardo
MS MVP


"Limberg" escribió en el mensaje
news:
Hola amigos.

¿Cómo puedo ejecutar una substitución macro en vb?
* Aqui les mando un pequeño código de vfp, (& ejecuta una substitución
macro)
* VALUE es igual a TEXT en vb.

cmd = "THISFORM."+ALLTRIM(This.Parent.NametxtIndex)+".VALUE"
IF THIS.Parent.DataTypeIndex = "C"
THIS.PARENT.VALUE = ALLTRIM(&cmd)
ELSE
THIS.PARENT.VALUE = ALLTRIM(STR(&cmd))
ENDIF

Saludos
Limberg.

Preguntas similares