Ir al contenido


Foto

Barra de progreso infinita


  • Por favor identifícate para responder
1 respuesta en este tema

#1 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 07 noviembre 2016 - 09:43

Tras la respuesta que di a JoAnCa aquí y para que quede ordenado en el foro como un truco más, publico el código de una barra de progreso infinita para tareas críticas en las que no conocemos ni podemos aventurar el tiempo que tardará una tarea:
 


delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, ComCtrls, ExtCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. ProgressBar1: TProgressBar;
  12. Strat: TButton;
  13. Stop: TButton;
  14. procedure FormCreate(Sender: TObject);
  15. procedure StratClick(Sender: TObject);
  16. procedure StopClick(Sender: TObject);
  17. private
  18. { Private declarations }
  19. public
  20. { Public declarations }
  21. end;
  22.  
  23. var
  24. Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.dfm}
  29.  
  30. const PBM_SETMARQUEE = WM_USER + 10;
  31.  
  32. procedure TForm1.FormCreate(Sender: TObject);
  33. begin
  34. SetWindowLong(ProgressBar1.Handle, GWL_STYLE, GetWindowLong(ProgressBar1.Handle, GWL_STYLE) or PBM_SETMARQUEE);
  35. end;
  36.  
  37. procedure TForm1.StratClick(Sender: TObject);
  38. begin
  39. SendMessage (ProgressBar1.Handle, PBM_SETMARQUEE, 1, 20); // Activa 100ms
  40. end;
  41.  
  42. procedure TForm1.StopClick(Sender: TObject);
  43. begin
  44. SendMessage (ProgressBar1.Handle, PBM_SETMARQUEE, 0, 20); // Desactiva
  45. end;
  46.  
  47. end.

 

Saludos.


  • 2

#2 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 25 diciembre 2016 - 12:22

TAdvSmoothProgressBar

 

http://www.tmssoftwa...progressbar.asp

 

Saludos!


  • 1




IP.Board spam blocked by CleanTalk.