Oscar vc. não reportou qual é o erro de GPF.
Qual é o tamanho da mensagem??
Tentou modificar a MSGRUN.PRG original do seu FIVE?
Oscar, vc. pode modificar a gosto e incluir ao seu projeto, veja que modifiquei a minha MSGRUN.PRG para meu gosto pessoal.
/*
MsgWait y MsgRun no se muestran correctamente bajo 32 bits, el
cálculo de coordenadas no es correcto pues el texto de cuerpo
se recorta:
Moises,
En source\function\msgrun.prg hay que modificar estas líneas asi:
Código:
ACTIVATE DIALOG oDlg CENTER ;
ON PAINT oDlg:Say( 11, 0, xPadC( oDlg:cMsg, nWidth ),,,, .T. )
Antonio Linares
<!-- w --><a class="postlink" href="http://www.fivetechsoft.com">www.fivetechsoft.com</a><!-- w -->
*/
#Include "FiveWin.Ch"
//----------------------------------------------------------------------------//
Function WaitSeconds( nSecs )
Local nStart := GetTickCount()
DEFAULT nSecs := 1
While GetTickCount() - nStart < ( 1000 * nSecs )
Enddo
Return Nil
//---------------------------------------------------------------------------//
Function MsgRun( cCaption, cTitle, bAction )
Local oDlg, nWidth, oFnt, oFont, oBrush
DEFAULT cCaption := "Por Favor, Espere... ",;
bAction := { || WaitSeconds( 1 ) }
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 0, -12 BOLD
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -14 BOLD
IF cTitle == Nil
DEFINE DIALOG oDlg ;
FROM 0,0 TO 3, Len( cCaption ) + 4 ;
STYLE nOr( DS_MODALFRAME, WS_POPUP ) ;
COLOR nRGB( 000, 000, 000 ), nRGB( 135, 206, 235 )
oDlg:lHelpIcon := .F. // ok
ELSE
DEFINE DIALOG oDlg ;
FROM 0,0 TO 4, Max( Len( cCaption ), Len( cTitle ) ) + 4 ;
TITLE cTitle ;
STYLE nOR( DS_MODALFRAME ) ;
COLOR nRGB( 000, 000, 000 ), nRGB( 135, 206, 235 )
oDlg:lHelpIcon := .F. // ok
ENDIF
oDlg:bKeyDown = { | nKey | IF( nKey == VK_ESCAPE, ( oDlg:End() ), ) }
oDlg:bStart := { || Eval( bAction, oDlg ), oDlg:End(), SysRefresh() }
oDlg:cMsg := cCaption
nWidth := oDlg:nRight - oDlg:nLeft
SET FONT OF oDlg TO oFnt
//-> Modificado By Antonio Linares 26/10/2007 - Correcao de Bug
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT oDlg:Say( 11, 0, xPadC( oDlg:cMsg, nWidth ),,,, .T. )
oFnt:End()
oFont:End()
RETURN NIL
//---------------------------------------------------------------------------//
Function MsgWait( cCaption, cTitle, nSeconds )
DEFAULT nSeconds := 4
Return MsgRun( cCaption, cTitle, { || WaitSeconds( nSeconds ) } )
//---------------------------------------------------------------------------//
Function StopUntil( bBlock )
DO WHILE !Eval( bBlock )
WaitMessage()
SysRefresh()
ENDDO
Return Nil
//---------------------------------------------------------------------------//
Abs, saudações, saludos, regards.