Page 2 of 2

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Tue Jul 22, 2014 2:06 pm
by hmpaquito
Your the man ! Congratulations

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Tue Jul 22, 2014 2:32 pm
by Antonio Linares
Somos un gran equipo todos los que estamos en estos foros! :-)

Re: Progress Bars, no funciona correctamente.

PostPosted: Tue Jul 22, 2014 10:02 pm
by marca
hmpaquito wrote:Antonio,

Te traduzco un mensaje que he encontrado por ahi, por si te diera una pista. El asunto según parece es viejo, y viene de cuando Windows Vista.

the problem of progressbar in Vista is that windows ignores the
value assigned to it, and on your own using a timer to go
raising the bar at your leisure. So when you assign your 100%, the
yet he goes where he pleases. The only way I've found of
force him to show the bar to 100%, change the limit to 1 and the value
also 1 Eg.:

oProgressBar1 ::: nMax: = 1
oProgressBar1 ::: nValue: = 1

However, see a bar jump from where he was,
to 100% hit.


Saludos



Boa noite a todos
Continuo sem entender!!!

Na classe tProgress nao existe data nValue


CLASS TProgress FROM TControl

DATA nMin, nMax, nPos, nStep AS NUMERIC
nMin --> Ok
nMax --> Ok
nValue ?


Como ficaria isso ?


function Main()

local oDlg, oProg1, oProg2
local aVetor := {}
local nTotal

AADD( aVetor, { '1', '2', '3', '4', '5', '6' ,'7' ,'8' ,'9' ,'10'} )

nTotal := Len(aVetor)

DEFINE DIALOG oDlg TITLE "Progress Bars"

@ 1, 1 PROGRESS oProg1 SIZE 80, 12

@ 1, 20 PROGRESS oProg2 SIZE 12, 50 VERTICAL

@ 3, 9 BUTTON "Ok" ACTION oDlg:End()

oDlg:bStart = { || Increase( oProg1, oProg2 , nTotal ) }

ACTIVATE DIALOG oDlg CENTER ;
ON INIT ( oProg1:SetRange( 0, nTotal ), oProg1:SetStep( 1 ),;
oProg2:SetRange( 0, nTotal ), oProg2:SetStep( 1 ) )

return nil

function Increase( oProg1, oProg2 , nTotal )

local n := 0

for n = 1 to nTotal // 116

oProg1:SetPos( n )
oProg2:SetPos( n )

Sleep( 30 )

SysRefresh()

next

return nil




nTotal

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Jul 23, 2014 4:15 am
by Antonio Linares
Marcelo,

Construye este ejemplo y lo entenderás :-)

viewtopic.php?p=162600#p162600

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Fri Jul 25, 2014 12:15 pm
by marca
Antonio Linares wrote:Marcelo,

Construye este ejemplo y lo entenderás :-)

viewtopic.php?p=162600#p162600



Olá Antonio bom dia

Como vcs chegaram a este 116 já que o total do vetor que dei como exemplo ai é 100
De onde ele vem ?
No meu exemplo acima 116 teria q. ser igual ao tamanho do vetor

Outro exemplo

Um arquivo com 500 Registros com isso onde esta 116 teria que ser 500 e ai o progress não completa a não ser que eu forçe

nTotal := MeuAlias->(Reccount()) + 50 por exemplo

Como ficaria la em baixo no for next ?

function Main()

local oDlg, oProg1, oProg2
local nTotal

MeuAlias contem 500 registros

nTotal := MeuAlias->(Reccount())

DEFINE DIALOG oDlg TITLE "Progress Bars"

@ 1, 1 PROGRESS oProg1 SIZE 80, 12

@ 1, 20 PROGRESS oProg2 SIZE 12, 50 VERTICAL

@ 3, 9 BUTTON "Ok" ACTION oDlg:End()

oDlg:bStart = { || Increase( oProg1, oProg2 , nTotal ) }

ACTIVATE DIALOG oDlg CENTER ;
ON INIT ( oProg1:SetRange( 0, nTotal ), oProg1:SetStep( 1 ),;
oProg2:SetRange( 0, nTotal ), oProg2:SetStep( 1 ) )

return nil

function Increase( oProg1, oProg2 , nTotal )

local n := 0
// 500
for n = 1 to nTotal // 116

oProg1:SetPos( n )
oProg2:SetPos( n )

Sleep( 30 )

SysRefresh()

next

return nil

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Fri Jul 25, 2014 3:20 pm
by Antonio Linares
Marcelo,

De momento desconozco cual es la relación entre 100 y 116 que hace que la barra se complete.

Habrá que hacer pruebas con distintos valores hasta que descubramos que proporción mantienen entre ambos.

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Fri Jul 25, 2014 9:24 pm
by Armando
Antonio y foreros:

Por si sirve de consuelo :) , Tengo un ejemplo en VB y tiene el mismo problema, no llena la barra !.

Saludos

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Tue Jul 29, 2014 6:50 pm
by marca
Antonio Linares wrote:Marcelo,

De momento desconozco cual es la relación entre 100 y 116 que hace que la barra se complete.

Habrá que hacer pruebas con distintos valores hasta que descubramos que proporción mantienen entre ambos.



Olá Antonio , obrigado por responder
Mas então nao podemos dizer que o topico esta solucionado concorda ?
Este mesmo exemplo com o Meter funciona perfeitamente


function Main()

local oDlg, oProg1, oProg2
local nActual := 0 , nTotal := 100
DEFINE DIALOG oDlg TITLE "Progress Bars"

// @ 1, 1 PROGRESS oProg1 SIZE 80, 12
// @ 1, 20 PROGRESS oProg2 SIZE 12, 50 VERTICAL



* ---------------> 100 e não 116
@ 2, 2 METER oProg1 VAR nActual TOTAL nTotal OF oDlg SIZE 200, 20

@ 3, 9 BUTTON "Ok" ACTION oDlg:End()

oDlg:bStart = { || Increase( oProg1, nTotal ) }

ACTIVATE DIALOG oDlg CENTER
return nil

function Increase( oProg1 , nTotal )

local n := 0

oProg1:nTotal := nTotal
oProg1:Set(0)

for n = 1 to nTotal // 116

oProg1:Set( n )
Sleep( 30 )

SysRefresh()

next

return nil

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Jul 30, 2014 1:47 am
by Antonio Linares
Marcelo,

He pensado acerca de este asunto y tal vez lo que hay que aumentar sea un 16 por ciento del total.

Pruébalo, gracias :-)

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Aug 20, 2014 4:44 am
by Willi Quintana
Hola Amigos,,,
Asi me funciona desde recursos
...
..
REDEFINE METER oMeter1 VAR nMet1 ID 101 OF oDlg TOTAL 100 / 1.16
----
Avanza(oMeter1
--
Function Avanza(oMeter1)
local nCont
FOR nCont := 1 to 456
oMeter2:Set(nCont * 1.16)
SysWait(0.1)
NEXT nCont
Return(Nil)

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Aug 20, 2014 9:48 am
by Antonio Linares
Willi,

gracias!

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Aug 20, 2014 2:17 pm
by MarioG
Estimados;
Tengo intenciones de usar TProgress en un proceso que no puedo mostrar el avance (o no se como). El caso es cuando uso sentencias SQL con ADS.
De manera que me vendría bien usar, como muestra, el sample progres2.prg; donde la porción va y viene. Aunque en este sample lo hace hasta cierto momento, luego muestra el avance hasta el final. Amplio; pretendo mostrar tal como la hacen algunas versiones de XP al inicio
Entonces la pregunta es, como debo hacerlo?
Uso FW 1204
Por otro lado probé el sample que dejo Antonio y me funciona correctamente; esto quiere decir que la corre corrección no es sobre TProgress?

gracias

Re: Progress Bars, no funciona correctamente (Solucionado)

PostPosted: Wed Aug 20, 2014 2:21 pm
by MarioG
Me respondo a mi mismo (self)
SetMarquee(.t.)