Página 1 de 1

Mensagem processamento

Enviado: 02 Abr 2010 15:13
por Wellington
Gostaria de fazer uso da funcao abaixo aonde apresenta uma tela enquanto uma rotina esta sendo executada. Acontece que a mensagem a ser exibida esta sendo apresentada no caption do oGroup1 e nao caption do oTimHabla.
Sei que o problema esta na funcao HW_Atualiza_Dialogo, porem fiz algumas alteracoes e nao tive sucesso.
Gostaria ainda de melhorar a mesmo, fazendo com que o usuario tivesse a possibilidade de interromper o processo, porem nao tenho ideia de como faria isto.
Alguem tem alguma ideia ?

Desde ja agradeço,

Código: Selecionar todos

*********************
FUNCTION MsgRun( cMsg )
*********************
PRIVATE oTimHabla,oGroup

if cMsg=Nil
   cMsg:="..."
endif

INIT DIALOG oDlgHabla TITLE " Aguarde" NOEXIT NOEXITESC;
AT 277,191 SIZE 295,73 ;
STYLE DS_CENTER + WS_VISIBLE + WS_CAPTION

@ 11,29 SAY oTimHabla CAPTION cMsg OF oGroup1  SIZE 273,19   
@ 8,0 GROUPBOX oGroup1 CAPTION ""  SIZE 279,65

ACTIVATE DIALOG oDlgHabla NOMODAL

Return Nil

****************
Function Fim_Run
****************
IF oDlgHabla#NIL
   oDlgHabla:CLOSE()
ENDIF
Return Nil

****************
FUNCTION HW_Atualiza_Dialogo(vMensagem)
****************
hwg_processmessage()
oDlgHabla:ACONTROLS[1]:SETTEXT(vMensagem)
RETURN NIL

Re: Mensagem processamento

Enviado: 04 Abr 2010 22:49
por sygecom
Tente assim,
em:
@ 11,29 SAY oTimHabla CAPTION cMsg OF oGroup1 SIZE 273,19
mude para:
@ 11,29 SAY oTimHabla CAPTION cMsg SIZE 273,19

ou em:
oDlgHabla:ACONTROLS[1]:SETTEXT(vMensagem)
mude para:
oDlgHabla:ACONTROLS[2]:SETTEXT(vMensagem)

Re: Mensagem processamento

Enviado: 05 Abr 2010 19:22
por Wellington
Testei conforme indicado, porem sem sucesso. Verifiquei o tamanho da matriz oDlgHabla:ACONTROLS, ela tem apenas 1 elemento.
Tentei oDlgHabla:oTimHabla:CAPTION := cMsg, erro tbem (nao tenho certeza se isto é possivel)

Re: Mensagem processamento

Enviado: 06 Abr 2010 00:15
por sygecom
Se comentar o GrupoBox funciona ?