Page 1 of 1

Problemas con ON PAINT y GAUGE

Posted: Mon Jul 19, 2010 10:37 pm
by Mayor_Valenzuela
Desde hace tiempo tengo un problema con la clausula ON PAINT, cuando necesito que un proceso sea mostrado con una barra de progreso la cual no debe ser ejecutada por el usuario si no al ejecutar la acción se genere automaticamente. Esto sale bien siempre y cuando no se mueva ninguna ventana ya que cuando pierde el foco y lo recupera el proceso se realiza nuevamente... y en ciertas ocaciones me proboca una caida del sistema... Existe alguna forma de no usar ON PAINT???... No se si me entienden???... ojala puedan ayudarme... :D

Re: Problemas con ON PAINT y GAUGE

Posted: Tue Jul 20, 2010 2:23 pm
by jose_murugosa
El evento ON PAINT dispara los _ vez que se pinta el objeto, e decir al moverlo, minimizarlo, maximisarlo, darle foco, etc.

Si el evento debe ejecutarse al abrirse la ventana lo ideal es usar ON INIT.

Espero que esto te sirva :)

Re: Problemas con ON PAINT y GAUGE

Posted: Tue Jul 20, 2010 2:57 pm
by Mayor_Valenzuela
Gracias por la ayuda, pero ya recorde como lo hice en una ocacion... gracias de todas maneras y a continuacion la solucion de mi problema para las estadisticas por si alguien pasa por lo mismo... :D
  • Antes...

    DEFINE DIALOG oDlg RESOURCE "DIALOG_INGMOD_PROCESO" FONT oFont TITLE "Recuperando Información de Precios por Local"

    REDEFINE GAUGE oBar VAR nVar ID 101 OF oDlg COLOR CLR_WHITE, CLR_BLACK BARCOLOR CLR_WXP, CLR_BLACK ALTERNATE
    REDEFINE SAY oTxt ID 102 OF oDlg COLOR CLR_HRED UPDATE

    ACTIVATE DIALOG oDlg CENTERED ON PAINT ( Proceso( oBar, oTxt ), oDlg:End() )

    Despues...

    DEFINE DIALOG oDlg RESOURCE "DIALOG_INGMOD_PROCESO" FONT oFont TITLE "Recuperando Información de Precios por Local"

    REDEFINE GAUGE oBar VAR nVar ID 101 OF oDlg COLOR CLR_WHITE, CLR_BLACK BARCOLOR CLR_WXP, CLR_BLACK ALTERNATE
    REDEFINE SAY oTxt ID 102 OF oDlg COLOR CLR_HRED UPDATE

    ACTIVATE DIALOG oDlg CENTERED NOWAIT

    While !Eof()
    .
    .
    .
    End While

    Return (Nil)

Re: Problemas con ON PAINT y GAUGE

Posted: Wed Jul 21, 2010 2:36 pm
by Willi Quintana
Hola, hazlo asi:
...
..
.

Code: Select all

lFlag := .t.
DEFINE DIALOG oDlg ......
<<<acciones>>>
ACTIVATE DIALOG oDlg ON PAINT (If(lFlag, (lFlag := .f., HazAlgoAqui()), Nil)