PDA

Ver la Versión Completa : Barra de Progress en Carga de Imagen


shoulder
04-08-2015, 14:59:10
Hola hay alguna forma de mostrar un Progress o reloj de arena cuando cargo una Timage?.


Image1.Picture.loadFromFile(archivo);


Gracias.

ecfisa
04-08-2015, 15:47:30
Hola shoulder.


LoadFromFile con una progressbar (http://www.clubdelphi.com/foros/showthread.php?t=42524)


Saludos :)

shoulder
04-08-2015, 19:46:08
Gracias Ecfisa, pero no me funciona el tema que yo estoy usando el

use itfPDFImage
.....

Image1.Picture.loadFromFile(archivo);
TPDFImage(Image1.Picture.Graphic).LastPage;


todo dentro de un scrollbox

Y en el Image1.on Progress hasta probe en escribir un mensaje, nunca llega ahi. Cargo un pdf.

Gracias.

Casimiro Notevi
04-08-2015, 20:18:22
¿Qué tiene que ver una cosa con otra? :confused:
Preguntas por una barra de progreso.

shoulder
04-08-2015, 20:23:09
Cierto que pregunto por una barra de progreso, pero la ignora, probe como un ejemplo escribir en onprogress del Image1 un mensaje para ver que pasaba pero nunca pasa por ahi por eso es que no me carga el Progressbar.

Gracias.

Casimiro Notevi
04-08-2015, 20:28:54
Debes poner tu código, porque así es imposible ayudar.
¿Qué es un itfPDFImage?

shoulder
04-08-2015, 20:38:12
El tpdfimage es una clase para pdfs dentro de una TImage (The class TPDFImage registers as a graphics class for PDF files with TPicture. With this class you can open a PDF
in the same way you do with other graphics in delphi. There are advanced features available for selecting the page to load and to change the resolution / zoom factor.). El use es itfPDFImage y funciona muy bien. El tema que se carga el archivo pdf en Timage.

Este es el codigo :


Image1.Picture.loadFromFile(archivo);
TPDFImage(Image1.Picture.Graphic).LastPage;
Label2.Caption:='Página Actual : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).CurrentPage);
Label1.Caption:='Páginas : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).Pagecount);
Scrollbar1.SetFocus;



Pero el archivo como no es un jpeg es un pdf, por alguna razon el Image1.onprogress lo ignora.

ecfisa
04-08-2015, 21:25:01
Hola shoulder.

¿ El contenido de la variable "archivo" es el nombre de un archivo .PDF ?

Saludos :)

shoulder
04-08-2015, 21:51:46
Sisi es un archivo pdf, lo que encontre que dentro de la clase es

TPDFImage(Image1.Picture.Graphic).OnProgress


Tendria que ver como setearlo pero me da error cuando lo programo.

ecfisa
04-08-2015, 22:17:02
Hola shoulder.

La verdad no sé como podrías implementarlo... Es que en realidad no se trata del evento OnProgress de un TImage sino de otro (un TPDFImage) y desconozco todo sobre ese componente.

Saludos :)

shoulder
05-08-2015, 16:54:53
Gracias igual Ecfisa, encontre que el onprogress no funciona fuera del formato jpeg y verdaderamente no encontre nada en la red como se hace un progreso o una imagen de espera cuando se carga un pdf.

Casimiro Notevi
05-08-2015, 17:16:39
Pon un icono animado antes y lo quitas después. No es lo mismo, pero "da el pego",

iconoanimado.Show;
Image1.Picture.loadFromFile(archivo);
TPDFImage(Image1.Picture.Graphic).LastPage;
Label2.Caption:='Página Actual : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).CurrentPage);
Label1.Caption:='Páginas : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).Pagecount);
Scrollbar1.SetFocus;
iconoanimado.Hide;

shoulder
05-08-2015, 20:57:13
Gracias Funciono al menos se dan cuenta que no se bloqueo el sistema.


Screen.Cursor := crAPPStart;
Image1.Picture.loadFromFile(archivo);
TPDFImage(Image1.Picture.Graphic).LastPage;
Label2.Caption:='Página Actual : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).CurrentPage);
Label1.Caption:='Páginas : ' + IntToStr(TPDFImage(Image1.Picture.Graphic).Pagecount);
//bitbtn6.Click;
Label3.Visible := False;
Scrollbar1.SetFocus;
Screen.Cursor := crDefault;

nlsgarcia
05-08-2015, 21:56:05
shoulder,


...¿Hay alguna forma de mostrar un Progress o reloj de arena cuando cargo una Timage?...

:rolleyes:

Revisa esta información:

Barra de Progreso Infinita en Windows con Delphi 7 (http://www.clubdelphi.com/foros/showthread.php?t=84935)

Espero sea útil :)

Nelson.

ecfisa
06-08-2015, 11:24:15
Hola.

Creo que el principal escollo con que se encuentra shoulder para usar una gráfica de progreso con el componente TPDFImage, es que no puede acceder al evento del cuál obtener el valor actual del proceso.

Pienso que mientras se carezca de dicha posibilidad, la alternativa de Casimiro no solo es buena, sino que pareciera la única.

Saludos :)

shoulder
06-08-2015, 16:18:35
Las dos alternativas son excelentes, me sirvio, recomiendo el componente es rapido y se puede crear una buena ventana lectora de PDF el TPDFImagen.
Gracias.

ecfisa
06-08-2015, 16:51:18
Hola shoulder.
Las dos alternativas son excelentes, me sirvio,

Veo que quedó confusa la idea que intentaba exponer, la barra de progreso infinito propuesta por nlsgarcia, también es muy buena opción.
Pero cumple la misma función que la propuesta de Casimiro (indicar que hay una espera). La acción no puede cuantificarse, ya que al no disponer del valor actual del progreso ni del valor final, el uso de un indicador de progreso carece de sentido.

recomiendo el componente es rapido y se puede crear una buena ventana lectora de PDF el TPDFImagen.
Gracias.
Entonces estaría bueno que pusieras mas información sobre él (enlace a la descarga, si es o no de pago, etc.) así podemos probarlo.

Saludos :)

nlsgarcia
06-08-2015, 19:31:09
shoulder,


...al no disponer del valor actual del progreso ni del valor final, el uso de un indicador de progreso carece de sentido...

:rolleyes:

Revisa esta información:

http://i.imgur.com/5l7Bo2I.jpg

Tomado de : About Progress Bar Controls (https://msdn.microsoft.com/en-us/library/windows/desktop/bb760816%28v=vs.85%29.aspx)

Espero sea útil :)

Nelson.

shoulder
06-08-2015, 19:55:52
Aca les dejo el enlace, es gratuito y viene con manual. Permite manejar la impresora, zoom, cambiar paginas y leer las mismas y aumentar la resolucion.

http://www.itf-it.com/index.php/en/en-downloadarea/en-delphicomponents/105-main/download/delphicomponents/99-en-tpdfimage

ecfisa
06-08-2015, 23:18:09
Hola.
shoulder,

...al no disponer del valor actual del progreso ni del valor final, el uso de un indicador de progreso carece de sentido...

:rolleyes:
...

Creo que sigo sin expresarme de modo correcto, voy a intentar explicar mi punto de otro modo.

La opción de una imagen animada, o una barra de desplazamiento infinita están basadas en el mismo concepto: Mostrar al usuario que se está desarrollando una tarea que llevará un tiempo indeterminado. Y en ese sentido ambas opciones (la de Casimiro y la de nlsgarcia) lo hacen perfectamente.
En la misma categoría caería mostrar un formulario con el mensaje "espere un momento mientras hago algo" y luego ocultarlo.

Sin embargo, una barra de progreso indica el avance o progreso que lleva una determinada tarea. Para la cuál, es necesario conocer el valor máximo alcanzable y el obtenido en un determinado punto temporal y es la relación del último valor con el primero la que indica el avance o progreso logrado.
A partir de la imposibilidad de conseguir dichos valores es que digo: "el uso de un indicador de progreso carece de sentido".

Saludos :)

ecfisa
06-08-2015, 23:21:32
Aca les dejo el enlace, es gratuito y viene con manual. Permite manejar la impresora, zoom, cambiar paginas y leer las mismas y aumentar la resolucion.

http://www.itf-it.com/index.php/en/en-downloadarea/en-delphicomponents/105-main/download/delphicomponents/99-en-tpdfimage
Muchas gracias shoulder, ya lo estoy descargando.

Saludos :)

nlsgarcia
07-08-2015, 01:40:22
Daniel,


...una barra de progreso indica el avance o progreso que lleva una determinada tarea. Para la cuál, es necesario conocer el valor máximo alcanzable y el obtenido en un determinado punto temporal y es la relación del último valor con el primero la que indica el avance o progreso logrado. A partir de la imposibilidad de conseguir dichos valores es que digo: "el uso de un indicador de progreso carece de sentido"...

:rolleyes:

http://i.imgur.com/VxXDX4K.jpg

Tomado de : Progress Bar Control Styles (https://msdn.microsoft.com/es-es/library/windows/desktop/bb760820%28v=vs.85%29.aspx#PBS_MARQUEE)

Te comento:

1- El estilo PBS_MARQUEE de un ProgressBar no esta ideado para mostrar el progreso cuantitativo de un proceso, su función radica simplemente en servir de animación a la actividad del proceso en curso, por lo cual carece de rango de posición.

2- El estilo PBS_MARQUEE se utiliza en casos donde no se requiera o no se pueda obtener un progreso cuantitativo de un proceso, permitiendo variar solamente la velocidad de la barra como único indicador de progreso.

Gráficamente:

http://i.imgur.com/tPBqfMS.gif

Gracias por tus comentarios :)

Nelson.

ecfisa
07-08-2015, 04:39:36
Hola Nelson.
Daniel,
...
1- El estilo PBS_MARQUEE de un ProgressBar no esta ideado para mostrar el progreso cuantitativo de un proceso, su función radica simplemente en servir de animación a la actividad del proceso en curso, por lo cual carece de rango de posición.
...

Si Nelson, conocía el estilo y coincidimos totalmente donde debe aplicarse y los alcances del mismo. El motivo de la aclaración era rectificar la redacción confusa e incompleta de un mensaje previo mío.

Todo lo contrario, no tenes nada que agradecer :)

Saludos :)