Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   cambiar el color de un toolbutton (https://www.clubdelphi.com/foros/showthread.php?t=78564)

PaulaGV 30-04-2012 05:28:16

cambiar el color de un toolbutton
 
hola!!buenas noches, estoy realizando un procesador de texto, así que utilice una toolbar y uno de sus toolbutton tiene asociado un colordialog, lo que quiero hacer, si es que es posible, es que cada vez que se seleccione un color, el toolbutton asociado quede de ese color. Estuve investigando y vi muchas sugerencias acerca de utilizar un evento llamado CustomDrawButton pero me cambia el color de todos los botones.
Espero que puedan ayudarme, y desde ya, muchas gracias!:)

ecfisa 30-04-2012 06:06:56

Hola Paula.

Podés hacer:
Código Delphi [-]
...
implementation

var
  GlobalColor: TColor = clBtnFace; // color con que desees que se inicie

procedure TForm1.ToolBar1CustomDrawButton(Sender: TToolBar;
  Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Button.Name = 'ToolButtonColor' then
    with Sender.Canvas do
    begin
      Pen.Style:= psClear;
      Brush.Color:= GlobalColor;
      Rectangle(Button.BoundsRect);
    end;
end;

procedure TForm1.ToolButtonColorClick(Sender: TObject);
begin
  if ColorDialog1.Execute then
  begin
    GlobalColor:= ColorDialog1.Color;
    TToolButton(Sender).Parent.Invalidate;
  end;
end;

Saludos.

PaulaGV 30-04-2012 06:58:10

cambiar el color de un toolbutton
 
muchas gracias por tu respuesta!!a modo de prueba le agregue al toolbutton una imagen alusiva a la función que cumple (formato BMP-16x16) y ademas implemente el código de tu respuesta, y quedo muy bien!!(segun mi criterio:)) ya que la imagen no se modifica, pero cada vez que cambio de color, los bordes de la imagen quedan de ese color :D

ecfisa 30-04-2012 18:34:16

1 Archivos Adjunto(s)
Hola Paula.

Eso depende del fondo de la imágen BMP.

Te adjunto un ejemplo con dos ToolButtons, el primero se pinta sin presentar defectos; en cambio el segundo deja un borde desprolijo alrededor de la imágen. Ambas imágenes son de 16x16.

Saludos.:)

PaulaGV 30-04-2012 20:23:24

cambiar el color de un toolbutton
 
muchisimas gracias por tu tiempo y las respuestas obvio!!!:D


La franja horaria es GMT +2. Ahora son las 19:16:50.

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