#EXTENSION(Espera, 'Arma ventana de espera') , SHOW,PROCEDURE
    #PROMPT('Titulo de la Ventana', @s50) , %Titulo, DEFAULT('Procesando')
    #PROMPT('Primer Linea', @s50), %PrimerLinea
    #PROMPT('Segunda Linea', @s50), %SegundaLinea
    #PROMPT('Icono',  OPENDIALOG('Seleccion','Iconos|*.ICO')), %Icono, Default ('ManoRoja.Ico')
    #AT(%DataSection), PRIORITY(5001)
VentanaEspera WINDOW('Procesando Registros'),AT(,,208,26),FONT('MS Sans Serif',8,,FONT:regular),CENTER, |
         GRAY,DOUBLE
       STRING(''),AT(31,3),Use(?LineaUno),FONT(,,,FONT:bold,CHARSET:ANSI)
       IMAGE('%Icono'),AT(3,2,25,22),Use(?Imagen), CENTERED
       STRING(''),AT(31,13),Use(?LineaDos),FONT(,,,FONT:bold,CHARSET:ANSI)
     END

    #ENDAT
    #At(%ProcessedCode), WHERE(%ProcedureTemplate = 'Source') ,Priority(9999), Description('Rutinas AbrirVentana y CerrarVentana para la ventana de espera')
        #Insert(%VentanaEsperaRoutines), NOINDENT
    #EndAt
    #At(%ProcedureRoutines) , WHERE(%ProcedureTemplate <> 'Source'), Priority(9999),  Description('Rutinas AbrirVentana y CerrarVentana para la ventana de espera')
        #Insert(%VentanaEsperaRoutines), NOINDENT
    #EndAt

#Group(%VentanaEsperaRoutines), Preserve
AbrirVentana Routine
   SETCURSOR(Cursor:Wait)
   Open(VentanaEspera)
         SetCursor()
         VentanaEspera{Prop:Text} = '%Titulo'
         ?LineaUno{Prop:Text} = '%PrimerLinea'
         ?LineaDos{Prop:Text} = '%SegundaLinea'
         Display

CerrarVentana Routine
    Close(VentanaEspera)
    SETCURSOR()
