FUNCTION MsgRunDiv( MiTexto, MiTitulo, MiAccion )
LOCAL DiRunDiv, nAncho,DivTexto
LOCAL MiArreglo:={}
LOCAL nArreglo:=0,
DEFAULT MiTexto := "Espere, Por Favor...",;
MiAccion := { || WaitSeconds( 4 ) }
IF At( CRLF,MiTexto ) != 0
DO WHILE At( CRLF,MiTexto ) != 0
DivTexto:=Left(MiTexto,At( CRLF,MiTexto )-1)
aadd(MiArreglo,DivTexto)
nArreglo:=MAX(nArreglo,len(DivTexto))
MiTexto:=substr(MiTexto,At( CRLF,MiTexto )+1)
ENDDO
ENDIF
aadd(MiArreglo,MiTexto)
nArreglo:=MAX(nArreglo,len(MiTexto))
IF MiTitulo == NIL
DEFINE DIALOG DiRunDiv ;
FROM 0,0 TO 2+LEN(MiArreglo) , nArreglo + 3 ;
STYLE nOr(WS_POPUP,DS_MODALFRAME) //nOr( DS_MODALFRAME, WS_POPUP )
ELSE
DEFINE DIALOG DiRunDiv ;
FROM 0,0 TO 4+LEN(MiArreglo), Max( nArreglo, Len( MiTitulo ) ) + 4 ;
TITLE MiTitulo STYLE nOr(DS_MODALFRAME)
ENDIF
DiRunDiv:lHelpIcon :=.f.
DiRunDiv:bStart := { || Eval( MiAccion, DiRunDiv ), DiRunDiv:End(), SysRefresh() }
nAncho := DiRunDiv:nRight - DiRunDiv:nLeft
ACTIVATE DIALOG DiRunDiv CENTER ON PAINT DiviMsg(DiRunDiv,MiArreglo,nAncho)
RETU nil
STATIC FUNCTION DiviMsg(DiRunDiv,MiArreglo,nAncho)
LOCAL posi
FOR posi=1 to len(MiArreglo)
DiRunDiv:Say( posi, 3, ALLTRIM(xPadC( MiArreglo[posi], nAncho )) )
NEXT
RETU nil