Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   progressbar como la de emule. (https://www.clubdelphi.com/foros/showthread.php?t=59020)

JXJ 09-08-2008 19:39:24

progressbar como la de emule.
 
Hola.

aqui con las dudas de como hacer un progressbar del tipo 3d. por que parece un tubo con secciones de las partes ya descargadas, y un indicador
del total descargado en porcentajes.

como el que usa el emule. o si ya existe uno opensource.

Con las caracterisiticas de

mostrar texto que indica el progreso total de la descarga tipo 39.8 %

mostrar un indicador del progreso total de la descarga que se corresponde al porcentaje que se muestra en el texto con una barra delgadita de color verde.

Mostrar graficamente el orden de las partes descargadas, que son las partes de descarga parcial del archivo, y la posicion se ve por los son trozitos de color sobre el fondo negro o gris oscuro.

aqui se ven claramente, a lo que me refiero.

http://www.zikinf.com/logiciels/gfx/...e-transfer.png
http://www.zeropaid.com/programs/gal..._transfers.png
http://www.crystalxp.net/galerie/img...-benya-174.jpg

sale gracias.

dec 09-08-2008 21:48:54

Hola,

A mí me suena que la "Jedi Library" incorpora alguna que otra barra de progreso "extendida"... pero sólo puedo decirte que me suena, e igual me equivoco. De todas formas, ¿probaste buscando en sitios como Torry's? Si no lo encuentras ahí... bueno, o en páginas similares...

JXJ 09-08-2008 22:28:17

ya dec.. ahi revise en torry.net varias progressbar.. pero voy a revisar de nuevo..

e instalar las jedi. ultima version por si acaso ahi las encuentro.

Gracias

JXJ 09-08-2008 23:04:11

por si alguien quiere saber, existe algo parecido
http://www.clevercomponents.com/prod...rogressbar.asp

solo que .. no es opensource.. es de pago.

y ahi explican mejor, lo que quiero de la barra de progreso.

coso 09-08-2008 23:25:42

Hola, este ejemplo usa un paintbox

Código Delphi [-]
procedure TForm1.Gradient(cl,ds : TColor; perc : double);
var
        ri,gi,bi : integer;
        rf,gf,bf : integer;
        pr,pg,pb : double;
        r,g,b    : integer;
        y : integer;
        c : TColor;
        s : string;
        wp : integer;
begin

with PaintBox1 do
begin
        ri := (cl and $FF);
        gi := (cl and $FF00) div $100;
        bi := (cl and $FF0000) div $10000;

        rf := (ds and $FF);
        gf := (ds and $FF00) div $100;
        bf := (ds and $FF0000) div $10000;

        pr := (rf - ri) / (Height/2);
        pg := (gf - gi) / (Height/2);
        pb := (bf - bi) / (Height/2);

        wp := Round(Width*perc/100);

        c := 0;
        for y := 0 to (Height div 2)  do
        begin
          r := ri + round(pr * y);
          g := gi + round(pg * y);
          b := bi + round(pb * y);

          c := RGB(r,g,b);

          Canvas.Pen.Color := c;
          Canvas.MoveTo(0,y);
          Canvas.LineTo(wp,y);
          Canvas.Moveto(0,Height-y);
          Canvas.LineTo(wp,Height - y);
        end;
        s := formatFloat('0.00%',perc);
        canvas.Brush.style := bsSolid;
        canvas.brush.color := clBlack;
        canvas.FillRect(Rect(wp,0,Width,Height));
        canvas.Brush.style := bsClear;
        canvas.Font.Color := ($00FFFFFF) xor canvas.Pixels[Width div 2,Height div 2];
        canvas.Textout((width - Canvas.Textwidth(s))div 2,(Height - Canvas.TextHeight(s)) div 2,s);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
        i : integer;
begin
        doublebuffered := true;
        PaintBox1.Canvas.FillRect(Rect(0,0,PaintBox1.Width,PaintBox1.Height));
        PaintBox1.Canvas.Brush.Style := bsClear;
        PaintBox1.Canvas.Font.Style := [fsBold];
        for i := 0 to 10000 do
        Gradient($00FF0000,$00FFFFFF,i/100);
       // Gradient(clGreen,clYellow,i/100);
end;

podrias crear un componente a medida poniendo eso en el evento onpaint. Vamos, que es solo un ejemplo, que se puede mejorar bastante.

coso 09-08-2008 23:35:30

Cita:

Mostrar graficamente el orden de las partes descargadas, que son las partes de descarga parcial del archivo, y la posicion se ve por los son trozitos de color sobre el fondo negro o gris oscuro.
eso ya seria ir marcando inicios y finales, e ir pintando esos trozos.

JXJ 10-08-2008 18:02:06

coso

gracias. ...

estoy revisando. tu codigo.

Blaster 13-08-2008 03:12:12

Emplea TQProgressBar!
 
Yo ya he probado algunos ProgressBar que he descargado desde Torry, y en lo personal, estos dos son los mejores (de los gratuitos):
  1. http://www.torry.net/vcl/indicat/met...rogressBar.zip
  2. http://www.torry.net/vcl/indicat/met...rogressbar.zip
Aunque para mi el primero de estos dos es el mejor (TQProgressBar). Se ve muy bien estéticamente, es gratis por supuesto y no da problemas. La apariencia metálica luce OK.

Bye, bye.

JXJ 14-08-2008 18:13:58

si estan buenos,
gracias



blaster.


La franja horaria es GMT +2. Ahora son las 18:38:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi