Ir al contenido


Cambiar de color a un canvas en ejecucion.


  • Por favor identifícate para responder
6 respuestas en este tema

#1 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 15 diciembre 2008 - 05:15

Pues eso amigos, tengo este codigo y estoy tratando de hacer un programita:



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.   with image1.canvas do
  5.   begin
  6.     pen.width:=3;
  7.     pen.color:=clRed; // me gustaria poder cambiar este color en ejecucion(selecionarlo de un combobox)
  8.     drawing:=true;
  9.     moveto(x,y);
  10.   end;
  11. end;



¿Debo usar alguna var ? Si es asi seria una del tipo string?
Algun Maestro a ver si me hecha una manito en esto. Gracias.

Un Saludo.

#2 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 15 diciembre 2008 - 05:58

Bueno amigos he logrado algo de lo que queria, pero no creo que sea la forma correcta:



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.   with image1.canvas do
  5.   begin
  6.     pen.width:=3;
  7.     pen.color:= Edit1.Color; //puse Edit y con dos botones cambio su color
  8.     drawing:=true;
  9.     moveto(x,y);
  10.   end;
  11. procedure TForm1.Button2Click(Sender: TObject);
  12. begin
  13. Edit1.Color:= clRed;
  14. end;
  15.  
  16. procedure TForm1.Button3Click(Sender: TObject);
  17. begin
  18. Edit1.Color:= clBlue;
  19. end;
  20.  
  21. end;



Esta trabajando, pero no de la forma que me gustaria ( con un ComboBox)

Un Saludo.

#3 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 15 diciembre 2008 - 07:02

La cosa mejoro: :)



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.   with image1.canvas do
  5.   begin
  6.     pen.width:=3;
  7.     pen.color:= Shape1.Brush.Color;
  8.     drawing:=true;
  9.     moveto(x,y);
  10.   end;
  11. end;
  12. procedure TForm1.ColorGrid1Click(Sender: TObject);
  13. begin
  14. Shape1.Brush.Color := ColorGrid1.ForegroundColor;
  15. end;



Con un Shape y un ColorGrid. ;)

Un Saludo.

#4 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 16 diciembre 2008 - 07:04

puedes ahorrarte el Shape, ya que el colorgrid no pierde su selección:



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.   with image1.canvas do
  5.   begin
  6.     pen.width:=3;
  7.     pen.color:= ColorGrid1.ForegroundColor;
  8.     drawing:=true;
  9.     moveto(x,y);
  10.   end;
  11. end;


  • 0

#5 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 16 diciembre 2008 - 07:34

Gracias por el dato Eduarcol.


Un Saludo.

#6 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 16 diciembre 2008 - 08:35

tambien dispones del backgroundcolor, que se seleciona con el botón derecho del mouse, te adjunto un programita para que veas, pruebalo asi:

- Con el boton izquierdo selecciona un color
- Selecciona otro con el derecho
- Presiona el boton de comando

Archivos adjuntos


  • 0

#7 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 16 diciembre 2008 - 09:49

Gracias Chamo, muy bueno el ejemplo ese. (y)


Un Saludo.




IP.Board spam blocked by CleanTalk.