![]() |
Uso del control CmProgress
Hola.
Al arrancar el programa necesito cargar un fichero muy grande. Como la espera es "desesperante", he intentado decorar la carga con una barra con porcentaje, pero no acabo de ver como funciona. No encuentro la manera de que vaya bien. Creo que la intencion es buena. Abro el fichero, invoco el timer y dentro del timer voy leyendo registros. ¿ Como lo haceis funcionar ? Saludos:( |
Breew,
¿Qué versión de PWC estás usando? |
Hola.
Perdonad el despiste.Estoy usando la version 9.0 compilada en Windows7 |
Breew,
Está na Cocina del Foro um exemplo para saber o numero total de registos num ficheiro. "Numero de Registos num Ficheiro indexado". Colocas o numero total de registos no "MAX" da CMprogress Em seguida, por cada registo lido, somas 1 ao "value" da cmprogress. Não necessitas de nenhum cmtimer para isto. Deves executar um ThruEvents por exemplo de 1000 em 1000 registos, para não bloquear tudo. Se não conseguires diz-me. Posso fazer um exemplo. Desculpa responder em português (espero que entendas). Saludos, Rui Pinto |
Yo utilizo una barra que es un ocs de terceros, el que trae PWC9, no me gusta nada, el "repintado" que hace es muy malo, el que uso se llama "progressbar-xp.ocx", que trae bastantes opciones y es muy sencillo de utilizar.
Como te ha dicho Rui, no tienes que hacerlo con un timer, sino: 1º - Saber el número total de registros, o lo haces con la utilidad que te ha dicho Rui, o haces una doble lectura del fichero, (la primera para saber el total de registros). 2º - Pones el total de registros en la propiedad "Max" de la barra de progreso y 1 en la propiedad "Min" 3º - Por cada lectura que hagas, sumas 1 a un contador y ese contador lo mueves a la propiedad "Value" de la barra de progreso 4º - Cuando termines de leer, pones a 0 la propiedad "Visible" de la barra Por ejemplo: Código COBOL:
Y con eso debe de funcionarte, si quieres el ocx, dilo y lo subo. Un saludo.- |
Rapinto, Josber, la ventaja del Timer, ahora que lo pienso, podría ser que en Windows 7 por ejemplo, el ProgressBar incluso cuando está parado, si no está a 0, hay un reflejo que recorre la parte llena cada x segundos. Este efecto desaparece en un bucle con ThruEvents, el cual resolvía el problema en XP porque ahí no hay ningun reflejo ni nada, sólo barra de progreso como tal. Como el Timer trabaja, por decirlo de alguna manera, "en un hilo separado", podría mantener el reflejo que digo.
|
Supongo Kuk, pero, creo que es consumir recursos así porque así.
Un saludo.- |
Hola Josber,
Sube el ocx, me gustaria echarle un vistazo Gracias |
1 Archivos Adjunto(s)
Aquí lo tienes, es muy sencillo de usar, pero si te hace falta ayuda, dilo.
Un saludo.- |
Hola.
Perfecto. Ahora tengo un problema. el cmprogress lo tengo metido en opened event. Pero no es visible hasta que no acaba de hacer todas las instrucciones del opened event. Como hago para que primero carque toda la pantalla y despues ejecute la lectura del archivo con el cmprogress[COLOR="Silver"] ---------- Post añadido : 17:27 ---------- Post anterior : 17:10 ---------- Cita:
No puedo instalarlo ni con el regsvr32 ni con el powercobol. me da error.:confused::confused: Saludos |
| La franja horaria es GMT +2. Ahora son las 15:40. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.