Eu fiz uma rotina para exibir mensagens de processamento baseado nos exemplos postados aqui no forum, mas estou com um problema.
A função é a seguinte:
MsgIni é para mostrar a mensagem.
Código: Selecionar todos
FUNCTION MsgIni( cMensagem, cTitulo, nTempo )
LOCAL oFonte := HFont():Add( "Courier New" , 0 ,-15,500,255 ), oSayMsg
LOCAL nLenMensagem:=0
DEFAULT cTitulo To "Aviso do Sistema",;
cMensagem To "Aguarde, em Processamento.",;
nTempo To 0
nLenMensagem:=(Len(cMensagem) * 15) + 20
INIT DIALOG oDlgHabla ;
TITLE HB_OemToAnsi(cTitulo) ;
SIZE nLenMensagem, 80 ;
STYLE DS_CENTER + WS_VISIBLE
@ 0,16 SAY oSayMsg Caption HB_OemToAnsi(cMensagem) Of oDlgHabla SIZE nLenMensagem, 20 STYLE SS_CENTER FONT HFont():Add( 'Lucida Console',0,-19,700,,,) COLOR "N+/W"
oSayMsg:Name := 'oSayMsg'
IF nTempo > 0
SET TIMER oTimer OF oDlgHabla VALUE nTempo ACTION {|| MsgFim(.T.) } //{|| oDlgHabla:CLOSE() }
ENDIF
ACTIVATE DIALOG oDlgHabla NOMODAL
RETURN .T.
Código: Selecionar todos
FUNCTION MsgFim(lTime)
DEFAULT lTime TO .F.
IF oDlgHabla#Nil
IF lTime
oDlgHabla:oTimer:End()
ENDIF
EndDialog()
oDlgHabla:Close()
hwg_SetForegroundWindow(hWnd)
ENDIF
RETURN Nil
A dialog é exibida com o titulo sem a mensagem que é passada para o parâmetro.
MsgIni("Criando indice para Cliente.")
Código: Selecionar todos
FUNCTION MONT_ARQ
CLOSE ALL
if adir('clie*.ntx')<5
MsgIni("Criando indice para Cliente.")
netuse('cliente',.t.,0,'')
pack
index on cnpj to clieA
index on nom to clieB
index on bairro to clieC
index on cid+bairro to clieD
index on cod_vend to clieE
MsgFim()
endif
//Existem outros indices além deste, este primeiro é só para exemplificar.
RETURN Nil
