INIT PROCEDURE
 Declara un procedimiento de inicialización
------------------------------------------------------------------------------
 Sintaxis

     INIT PROCEDURE <idProcedimiento> [(<lista idParám>)]
        [FIELD <lista idCampos> [IN <idAlias>]]
        [LOCAL <identificador> [[:= <inicializador>]]]
        [MEMVAR <lista identificadores>]
        .
        . <sentencias ejecutables>
        .
        [RETURN]

 Argumentos

     INIT PROCEDURE declara un procedimiento que se ejecutará cada vez
     que se inicie el programa.

     <idProcedimiento> es el nombre del procedimiento de inicialización
     que se va a declarar. Los nombres de procedimiento de inicialización
     pueden tener cualquier longitud pero sólo los 10 primeros caracteres
     son significativos. Los nombres no pueden comenzar con el carácter de
     subrayado, pero pueden contener cualquier combinación de caracteres,
     números o subrayados.

     <lista idParám> es la declaración de una o más variables de
     parámetros. Las variables especificadas en esta lista se declaran como
     variables locales.

     FIELD declara una lista de identificadores que se utilizan como
     nombres de campos cuando se encuentran. Si se especifica la cláusula
     IN, la referencia al nombre declarado incluye una referencia implícita
     al alias especificado.

     LOCAL declara y, opcionalmente, inicializa una lista de variables o
     matrices cuya visibilidad y tiempo de vida se limitan al procedimiento
     actual.

     MEMVAR declara una lista de identificadores que se utilizarán como
     matrices o variables de memoria públicas o privadas cuando se
     encuentren.

     RETURN pasa el control al siguiente procedimiento de inicialización
     o a la primera rutina ejecutable del programa si no hay otros
     procedimientos de inicialización pendientes.

 Descripción

     La sentencia INIT PROCEDURE declara un procedimiento que se ejecuta
     cada vez que se inicia el programa. Los procedimientos de
     inicialización se invocan antes de la primera sentencia ejecutable de
     una aplicación CA-Clipper y son útiles para realizar tareas de
     inicialización frecuentes, como lectura de valores de configuración o
     apertura de puertos de comunicaciones.

     Los procedimientos de inicialización son ejecutados implícitamente por
     CA-Clipper al inicio del programa. La visibilidad de estos
     procedimientos se limita al sistema, por lo que no es posible invocar
     un procedimiento de inicialización desde un procedimiento o función
     definida por el usuario. Cada procedimiento de inicialización recibe
     una copia de los argumentos de la línea de mandatos del DOS utilizada
     para invocar la aplicación.

     El control pasa de un procedimiento de inicialización al siguiente,
     hasta que se hayan ejecutado todos los procedimientos de
     inicialización. El control pasa entonces a la primera sentencia
     ejecutable del programa.

     La sentencia ANNOUNCE declara un identificador de módulo para un
     fichero fuente (.prg). Una vez declarados, se hace referencia a los
     procedimientos de inicialización mediante este identificador de módulo.
     Una aplicación puede utilizar cualquier número de procedimientos de
     inicialización solicitando explícitamente con REQUEST sus
     identificadores de módulo.

     Los procedimientos de inicialización solicitados por una aplicación se
     denominan colectivamente como la lista de inicialización. Aunque no hay
     un orden de ejecución por defecto en los procedimientos de la lista de
     inicialización, se aplican las siguientes reglas:

      El procedimiento de inicialización de CA-Clipper, CLIPINIT, se
        invoca siempre el primero.

      Si se declara un procedimiento de inicialización en el mismo
        fichero fuente (.prg) que la rutina principal de la aplicación, será
        el último procedimiento de inicialización invocado.

     CLIPINIT es invocado el primero para asegurar la integridad del
     sistema, instalando el sistema de recuperación de errores por defecto
     (ErrorSys). Cuando termina CLIPINIT, el control pasa al primer
     procedimiento de la lista de inicialización.

     Si se produce un error durante el arranque del sistema, el sistema
     vuelve al DOS sin invocar los restantes procedimientos de
     inicialización.

 Ejemplos

      El ejemplo siguiente utiliza INIT y EXIT PROCEDURE para
        guardar y restablecer el contexto del sistema operativo. Puede ser
        útil incluir en su programa una opción de menú GuardarDos:

        ANNOUNCE GuardarDos

        #define DOS_SCREEN     1
        #define DOS_ROW        2
        #define DOS_COL        3
        #define DOS_CURSOR     4
        #define DOS_COUNT      4

        STATIC saGuardarDos[ DOS_COUNT ]

        INIT PROCEDURE GuardarDos()
           SAVE SCREEN TO saGuardarDos[ DOS_SCREEN ]
           saGuardarDos[ DOS_ROW ]  := ROW()
           saGuardarDos[ DOS_COL ]  := COL()
           saGuardarDos[ DOS_CURSOR ] := SETCURSOR()
           RETURN

        EXIT PROCEDURE RestablecerDos()
           RESTORE SCREEN FROM saGuardarDos[ DOS_SCREEN ]
           SETPOS ( saGuardarDos[ DOS_ROW ], saGuardarDos[ DOS_COL ] )
           SETCURSOR( saGuardarDos[ DOS_CURSOR ] )
           RETURN

 To download this example - click here.

See Also: ANNOUNCE REQUEST EXIT PROCEDURE