Página 1 de 1

ProcessMessage() x Hwg_DoEvents()

Enviado: 01 Jul 2015 10:08
por Itamar M. Lins Jr.
Ola!
Explicação do Alexander de quando e como usar um ou outro.
They do the same, but I'm not sure, that hwg_DoEvents() processes
messages for dialogs and mdi windows ( Hwg_ProcessMessage() has a
special code for them ).
Additionally, Hwg_ProcessMessage() contains a sleep() function call.
The second parameter of Hwg_ProcessMessage() designates a number of
milliseconds to sleep, it is 1 by default. It was introduced for the
program do not eat too much processor time in a big cycles. You may try
to set this parameter to 0. Other option, which I use, is to call the
Hwg_ProcessMessage() not in each cycle iteration, but in 1 of 10, or
even 1 of 100. There is no any need to check messages after every skip.

Regards, Alexander.
Saudações,
Itamar M. Lins Jr.

ProcessMessage() x Hwg_DoEvents()

Enviado: 10 Set 2015 15:24
por janio
Acho que o meu google tradutor comeu bola aqui kkkk

Ainda to sem entender a diferença entre ProcessMessage() e Hwg_DoEvents()

Janio

ProcessMessage() x Hwg_DoEvents()

Enviado: 11 Set 2015 14:16
por Itamar M. Lins Jr.
Ola!
ProcessMessage() e Hwg_DoEvents()
Eu tinha perguntado ao Alexander, porquê o ProcessMessage é mais lento que o hwg_DoEvents, ele explicou que o ProcessMessage tem um comando SLEEP que faz demorar mais do que DoEvents e explicou para nós não ficarmos usado ele assim:

Código: Selecionar todos

DO WHILE !EOF()

SKIP
ProcessMessage()

ENDDO
usar assim:

Código: Selecionar todos

nCiclo := 0
DO WHILE !EOF()

SKIP

If ++nCiclo == 100
   ProcessMessage()
   nCiclo := 0
endif

ENDDO

Essas funções evita aquela mensagem ordinária do windows "ESTE PROGRAMA NÃO ESTÁ RESPONDENDO"...

Usamos na indexação, relatórios...

Saudações,
Itamar M. Lins Jr.

ProcessMessage() x Hwg_DoEvents()

Enviado: 11 Set 2015 15:20
por janio
Itamar,

Eu uso/usava Hwg_DoEvents(), não a cada ciclo/skip, mas a cada xRegistros. Mas mesmo assim aqui acolá aparecia a msg "ESTE PROGRAMA NÃO ESTÁ MAIS RESPONDENDO TAL TAL...". Dava uma travada!

Depois que vi essa mensagem ha alguns dias (mesmo sem entender direito a diferença entre uma e outra hehehe), comecei a subtituir a Hwg_DoEvents() pela ProcessMessage() e tenho notado que a mensagem "nao respondendo" diminuiu muito (não lembro de ter visto mais).

Janio