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.
- Code: Select all Expand view
/*
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
www.fivetechsoft.com
*/#Include "FiveWin.Ch"//----------------------------------------------------------------------------//Function WaitSeconds
( nSecs
) Local nStart := GetTickCount
() DEFAULT nSecs :=
1 While GetTickCount
() - nStart <
( 1000 * nSecs
) EnddoReturn 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 :=
4Return MsgRun
( cCaption, cTitle,
{ || WaitSeconds
( nSeconds
) } )//---------------------------------------------------------------------------//Function StopUntil
( bBlock
) DO WHILE !Eval
( bBlock
) WaitMessage
() SysRefresh
() ENDDOReturn Nil//---------------------------------------------------------------------------//
Abs, saudações, saludos, regards.