Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambiar color a progressbar (https://www.clubdelphi.com/foros/showthread.php?t=84085)

Caroso 06-09-2013 19:48:14

cambiar color a progressbar
 
hola muchachos perdonen la ignorancia pero quería saber si alguien me podría decir como aplicar esta función en delphi para cambiar el color de la progressbar del típico verde a otro color.. por ejemplo rojo...

Código Delphi [-]
PostMessage(ProgressBar1.Handle, $0409, 0, clRed);

muchas gracias... saludos

Casimiro Noteví 06-09-2013 19:58:18

http://www.clubdelphi.com/foros/showthread.php?t=43713

Caroso 06-09-2013 20:01:30

Cambiar color progressbar
 
hola Casimiro Notevi... gracias por tu respuesta...

de ese mismo enlace fue que obtuve la función esa... lo que intento saber es como aplicarla a un progressbar... el cual se ejecuta en windows 7...

muchas gracias...

radenf 06-09-2013 22:09:57

Estimado Caroso:

Yo utilizo siempre el componente gratuito TQProgressBar en Delphi 2007, que incluye esa opción y muchas más.
Lo puedes descargar desde la página del autor http://mapage.noos.fr/qnno/pages/delphi_en.htm
Saludos

ecfisa 06-09-2013 22:50:36

Cita:

Empezado por Caroso (Mensaje 466519)
hola Casimiro Notevi... gracias por tu respuesta...

de ese mismo enlace fue que obtuve la función esa... lo que intento saber es como aplicarla a un progressbar... el cual se ejecuta en windows 7...

Hola Caroso.

Creo que lo mas reusable es hacerte un procedimiento:
Código Delphi [-]
procedure ChangeProgressBarColor(PB: TProgressBar; const Color, BackgroundColor: TColor);
const
  PBM_SETBARCOLOR = WM_USER + 9;
begin
  PB.Brush.Color := BackgroundColor;
  PB.Perform(PBM_SETBARCOLOR, 0, Color);
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ChangeProgressBarColor(ProgressBar1, clLime, clMoneyGreen);
  ...

Saludos. :)

Caroso 06-09-2013 23:20:22

Cambiar color progressbar
 
hola muchachos muchas gracias por sus respuestas... las voy a aplicar y les comento como me fue...

Saludos... :)

nlsgarcia 07-09-2013 03:11:45

Caroso,

Cita:

Empezado por Caroso
...cambiar el color de la progressbar del típico verde a otro color...

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;

begin

   // Inicializa el ProgressBar
   ProgressBar1.Position := 0;
   ProgressBar1.Min := 1;
   ProgressBar1.Max := 100000;

   // Establece el color del ProgressBar a Green durante su ejecución
   SendMessage(ProgressBar1.Handle, $0409, 0, clGreen);

   // Llena el ProgressBar
   for i := ProgressBar1.Min to ProgressBar1.Max do
   begin
      // Avanza el ProgressBar una unidad
      ProgressBar1.StepBy(1);
   end;

   // Establece el color del ProgressBar a Navy al final de su ejecución
   PostMessage(ProgressBar1.Handle, $0409, 0, clNavy);

end;

end.
El código anterior configura el color del componente TProgressBar por medio de las APIs SendMessage y PostMessage.

Espero sea útil :)

Nelson.

Caroso 07-09-2013 03:50:25

Cambiar color progressbar
 
gracias muchachos por sus respuestas... los codigos que me facilitaron funcionan todos de maravilla en delphi 7... cambia bien el color de la progressbar...

pero queria saber si alguien sabe porque no funciona para la progressbar de delphi 2010?¿?... la de delphi 2010 es la misma del sistema operativo windows 7...

esa por ejemplo:
http://blogs.msdn.com/blogfiles/wpdb...PVImport_2.png

y yo queria que quede algo similar a esto:

http://i.stack.imgur.com/CUbLS.pngv

desde ya muchas gracias..

PD:\ los codigos facilitados por ustedes funcionan de 10 en windows 7 con delphi 7... pero yo queria aplicar esos codigos en windows 7 pero con delphi 2010...

Saludos :)

nlsgarcia 07-09-2013 04:35:14

Caroso,

Cita:

Empezado por Caroso
...los códigos que me facilitaron funcionan todos de maravilla en Delphi 7...¿porque no funciona para la ProgressBar de Delphi 2010?...yo queria aplicar esos códigos en Windows 7 pero con Delphi 2010...

El código sugerido en el Msg #7, funciona correctamente en Delphi 7 y Delphi 2010 bajo Windows 7 Professional x32.

El código sugerido en el Msg #5, funciona correctamente en Delphi 7 bajo Windows 7 Professional x32. En Delphi 2010 con Windows 7 Professional x32 solo requiere una ligera adaptación relacionada al Background del ProgressBar:
Código Delphi [-]
procedure ChangeProgressBarColor(PB: TProgressBar; const Color, BackgroundColor: TColor);
const
  PBM_SETBARCOLOR = WM_USER + 9;
begin
  PB.BackgroundColor := BackgroundColor;
  PB.Perform(PBM_SETBARCOLOR, 0, Color);
end;
Espero sea útil :)

Nelson.

nlsgarcia 08-09-2013 08:24:12

Caroso,

Cita:

Empezado por Caroso
...cambiar el color de la progressbar del típico verde a otro color...en Windows 7 pero con Delphi 2010...

Continuación del Msg #9:

Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;

begin

   ProgressBar1.Position := 0;
   ProgressBar1.Min := 1;
   ProgressBar1.Max := 10000;
   ProgressBar1.Smooth := True;
   ProgressBar1.BarColor := clNavy;
   ProgressBar1.BackgroundColor := clWhite;

   for i:= ProgressBar1.Min to ProgressBar1.Max do
      ProgressBar1.StepBy(1);

end;
El código anterior permite cambiar el color de Foreground y Background de un componente TProgressBar en Delphi 2010 bajo Windows 7 Professional x32 si la opción Project -> Options -> Application -> Enable Runtime Themes esta Disabled, lo cual aplica de forma análoga para el código sugerido en los Msgs #7 y #9.

Revisa este link:
Cita:

Disabling Themes in the IDE and in Your Application : http://docwiki.embarcadero.com/RADSt...ur_Application
Espero sea útil :)

Nelson.

nlsgarcia 08-09-2013 23:59:50

Caroso,

Cita:

Empezado por Caroso
...y yo queria que quede algo similar a esto...en Windows 7 pero con Delphi 2010...

Continuación del Msg #10:

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    ProgressBar1: TProgressBar;
    RadioGroup1: TRadioGroup;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   i : Integer;

begin

   case RadioGroup1.ItemIndex of
      0 : SendMessage(ProgressBar1.Handle, 1040, 2, 0); // ProgressBar Red
      1 : SendMessage(ProgressBar1.Handle, 1040, 3, 0); // ProgressBar Yellow
      2 : SendMessage(ProgressBar1.Handle, 1040, 1, 0); // ProgressBar Green
   end;

   ProgressBar1.Style :=  pbstNormal;
   ProgressBar1.Position := 0;
   ProgressBar1.Min := 1;
   ProgressBar1.Max := 10000;

   for i:= ProgressBar1.Min to ProgressBar1.Max do
      ProgressBar1.StepBy(1);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   RadioGroup1.ItemIndex := 0;
end;

end.
El código anterior permite cambiar el color de Foreground de un componente TProgressBar en Delphi 2010 bajo Windows 7 Professional x32 si la opción Project -> Options -> Application -> Enable Runtime Themes esta Enabled, como se muestra en la siguiente imagen:



Espero sea útil :)

Nelson.

Caroso 10-09-2013 01:20:46

Cambiar color progressbar
 
muchisimas gracias por tu tiempo y dedicacion con las respuestas nlsgarcia... :)

me sirvio mucho la ultima...

Saludos cordiales y gracias a todos :)


La franja horaria es GMT +2. Ahora son las 01:51:09.

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