La forma larga de 'TXADD' prepara el canal para recibir un número
de párrafos terminados con {linefeed} (en este caso, 3) afuera del parámetro
de lista del mnemónico. Estos párrafos son recopilados y luego son insertados
como un conjunto en el control. En este ejemplo, el número de párrafo antes
del cual se va a insertar tuvo 0, de modo que las nuevas líneas son agregadas
al comienzo.
La sentencia PRINT prepara el canal, y la
coma al final de la línea es necesaria para suprimir el {linefeed} final que
de otra manera sería impreso en el canal. En este caso, ese {linefeed} sería
interpretado como el fin del primer párrafo (en blanco), si este fuera mandado
a imprimir.
La sentencia WRITE entonces envía los tres
{linefeed} de los párrafos. Usaremos WRITE en lugar de PRINT porque automáticamente
añade un {linefeed} a cada ítem escrito.
PRINT (1)'TXAPPEND'(101,0,"xxx")
El mnemónico 'TXAPPEND' añade texto al final de un párrafo existente.
Este ejemplo fallaría si al menos no existe un párrafo (número de párrafo
0) en el control.
PRINT (1)'TXDEL'(101,1)
Este mnemónico elimina un párrafo por su número. En este caso,
el segundo párrafo (número de párrafo 1) es eliminado, si existiera. Si usted
quisiera eliminar todos los párrafos, hágalo con 'TXCLR'.
PRINT (1)'TXCLR'(101)
Hay varias funciones de CTRL que obtienen
información acerca del control de edición multilínea. Haga pruebas con cada
una de ellas al menos dos veces, haciendo algunos cambios para el texto que
haya dentro.
La función de CTRL 3 ("obtener cuenta") retorna el
número de párrafos existentes en el control.
PRINT DEC(CTRL(1,101,3))
La función 1 ("obtener texto") retorna el texto del
párrafo existente, sin un {linefeed} al final. El párrafo actual es el que muestra
el signo de intercalación en la pantalla. Esto puede ser establecido desde el
programa (vea 'TXSELECT' en su manual de referencias del Visual PRO/5), pero
es más frecuentemente establecido por el usuario.
PRINT CTRL(1,101,1)
La función 7 ("obtener todo el texto") retorna el
texto de TODOS los párrafos, con un {linefeed} después de cada uno, incluyendo
el último.
PRINT CTRL(1,101,7)
La función 2 ("obtener valor") retorna el número del
párrafo actual con un string binario de dos bytes.
PRINT DEC(CTRL(1,101,2))
Finalmente, hay una función de CTRL muy especial con la que
se puede obtener el texto de cualquier párrafo por número. Esta es la función
5 ("obtener párrafo por número"). !Aquí se puede ver como trabaja!
PRINT CTRL(1,101,5,0) ;
REM obtener primer párrafo
PRINT CTRL(1,101,5,1) ;
REM obtener segundo párrafo
PRINT CTRL(1,101,5,DEC(CTRL(1,101,3))-1) ;
REM obtener último párrafo.
¡NOTA! El cuarto argumento de la función
CTRL es normalmente un contexto específico. Vamos a cubrir este detalle más
adelante. El propósito es obtener información por medio de CTRL acerca de los
ítems en cualquier ventana en cualquier momento, convenientemente. Sin embargo,
la función 5 es un caso especial -- el cuarto argumento es el número de párrafo
para la función 5 solamente.
|