Página de inicio - Tecla de acceso: 1
Notas técnicas

MultiBase. Notas a la versión 2.0, release 05 para Windows

11. Funciones específicas de MultiBase/WIN

Las funciones que a continuación se detallan sólo tienen efecto en la versión de MultiBase para Windows.

11.1. Funciones diversas

getwinparm(exp): Dependiendo del valor de «exp», devolverá las coordenadas (en «píxeles») de la posición de la ventana de ejecución del CTL o el ancho o el alto de la misma. El valor devuelto por «exp deberá ser uno de los siguientes:

movewin(expy, expx [,exph, expw]): Permite cambiar el tamaño y el posicionamiento de la ventana de ejecución del CTL. Los valores de estas expresiones deben estar dados en píxeles.

iconizewin(): Iconiza la ventana de ejecución del CTL.

maximizewin(): Maximiza la ventana de ejecución del CTL.

restorewin(): Restaura la ventana a su tamaño y posición anteriores a la maximización o iconización.

setwintitle(exp): Modifica el título de la ventana de ejecución de CTL. El nuevo título será el devuelto por «exp».

messagebox(exptit, exptext [,expstyle]): Llamada a la función estándar de mensajes de Windows. Donde:

[ICO] [BOT] [DEF]

Donde:

[ICO]: Cualquiera de los siguientes:
      ICO-I: Icono de Información de Windows.
      ICO-STOP: Icono de parar del Windows.
      ICO-?: Icono de Interrogación del Windows.

[BOT]: Dependiendo de qué botones se deseen en el diálogo puede ser uno de los siguientes:
      OK: Sólo boton OK.
      OKCANCEL: Botones OK y CANCEL.
      RETRYCANCEL: Botones RETRY y CANCEL.
      ABORTRETRYIGNORE: Botones ABORT, RETRY y CANCEL.
      YESNO: Botones YES y NO.
      YESNOCANCEL: Botones YES, NO y CANCEL.

[DEF]: Indicará cuál de los botones será el botón por defecto. Si no se incluye, el botón por defecto será el primero. Puede ser uno de los valores siguientes:
      DEF2: El botón por defecto será el segundo.
      DEF3: El botón por defecto será el tercero.

Los valores devueltos por la función dependerán del botón pulsado por el usuario. Los posibles valores devueltos serán: OK, ABORT, CANCEL, IGNORE, NO, YES, RETRY.

gethinstance(): Devuelve la instancia Windows del CTL que se está ejecutando.

gethwnd(): Devuelve un entero (INTEGER o DWORD), que se corresponde con el manejador («handle») para Windows de la ventana principal del CTL. Sólo es útil para su uso con DLLs.

xtopixels([expr]): Devuelve el tamaño en «píxeles» que ocupa el número de columnas CTL indicado por «expr». Si no se especifica ningún parámetro se asume 1 como valor por defecto.

ytopixels([expr [, flag]]): Devuelve el tamaño en «píxeles» que ocupa el número de filas CTL indicado por «expr». Si no se especifica ningún parámetro se asume 1 por defecto. Por su parte, «flag» podrá tener dos valores: TRUE o FALSE. Si se indica TRUE se suma al resultado el tamaño en «píxeles» de la ventana de botones que aparece en la parte superior. Por defecto se asume FALSE.

dllfun(namefun, parm1, ...parmn): Ejecuta la función «namefun» con los parámetros indicados («parm1 _parmn») y retorna, en su caso, el valor devuelto por «namefun». (Ver definición del fichero «MB.INI»).

ansitooem(expr) y oemtoansi(expr): Convierten el string «expr» del «set» de caracteres ANSII (Windows) al set OEM (MS-DOS) y viceversa. Por ejemplo:

let expr1 = ansitooem (expr2)

11.2. Funciones de manejo de protocolo DDE

Estas funciones permiten al CTL comunicarse como cliente con cualquier aplicación Windows que soporte protocolo DDE.

DDEinitiate(apli, topic): Abre dinámicamente un canal de comunicación para intercambio de datos y retorna el número del canal abierto. Donde:

Devuelve:

NULL: Error de parámetros.
0: No se ha establecido comunicación.
número: Número de canal.

Ejemplo:

variable canal smallint
...
run "WINWORD c:\test.doc&"
let canal = DDEinitiate("WINWORD", "c:\text.doc")

DDEexecute(canal, comando): Envía la orden de ejecución al servidor. Donde:

Devuelve:

-1: Canal incorrecto.
0: Permiso denegado.
1: Ejecución correcta.
2: El servidor está ocupado.
3: «TIMEOUT» después de un bucle de espera. El servidor no responde.

Ejemplo:

let ret = DDEexecute(canal, "+({DOWN 2})")

DDEpoke(canal, item, data): Envía datos al servidor. Donde:

Devuelve los mismos valores que DDEexecute.

Ejemplo:

let ret = DDEpoke(canal, "StartOfDoc", "mitexto")

DDEterminate(canal): Cierra el canal de comunicación DDE.

Devuelve TRUE o FALSE si el canal es o no válido respectivamente.

11.3. Funciones CTL asociadas al manejo de impresión

setpmattr(attribute, value [, unit]): Permite establecer un atributo de impresión. Donde:

Devuelve:

NULL: Error de parámetros.
TRUE: Se ha activado dicho atributo.
FALSE: No se ha activado dicho atributo.

Los atributos «curcol» y «rightalign» sólo podrán usarse después de abrir el STREAM de impresión con la sentencia: «START OUTPUT STREAM_ THROUGH PRINTER». Los restantes se deberán usar con el STREAM cerrado.

getpmattr(attribute [, unit]): Retorna el valor en curso.Los valores de «attribute» y «unit» son los mismos que los de la función «setpmattr». El resultado de esta función será el valor actual de dicho parámetro expresado en «píxeles» si «unit» vale 1 (para «columns», «lines», «fixprtcolumn» y «graphsize» no tiene sentido usar este parámetro).

Devuelve:

NULL: Error en parámetros.
Número: Valor antes comentado.

Aparte de los diferentes «fonts» que pueden utilizarse dependiendo de cada impresora, existen algunos predeterminados en Windows con los siguientes nombres:

ANSI_FIXED o A_F
ANSI_VAR o A_V
DEVICE_DEFAULT o D_D
OEM_FIXED u O_F
SYSTEM_FONT o S_F

Para facilitar el uso del gestor de impresión, algunos de los valores anteriormente citados se pueden definir en la sección «.CONFIGURATION» del fichero «MB.INI». Estos valores son: PRTSET, DBPRINT, RPRINTER, PRINTMANFONT, FIXPRTCOLUMN y GRAPHSIZE.

Ejemplo:

.CONFIGURATION
...
PRTSET ANSI
DBPRINT PRINTMAN
RPRINTER PM
PRINTMANFONT =Courier
FIXPRTCOLUMN
GRAPHSIZE 2

etc. del «MB.INI».

« »