Ver Mensaje Individual
  #1  
Antiguo 27-02-2005
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Reputación: 20
maravert Va por buen camino
Cambiar colores a la imagen

Hola, a todos, antes de continuar ofresco una disculpa por no aplicar correctamente la guia de estilo, no la encontre en el sitio, espero alguien me diga donde se encuentra para no cometer este error nuevamente.

Tengo un programa que esta abajo en el cual existe un Timage con un bmp el cual tiene una imagen en color negro el cual quiero que el usuario cambie el color de la imagen de acuerdo al color que elija con el ColorDialog,

La primera vez si hace el cambio de negro a cualquier color, despues de esto ya no me cambia a otro color aunque guardo la referencia del color anterior.

Podria alguien decirme que estoy haciendo mal.

Gracias a todos de antemano por su colaboracion


Atenamente

Alejandro Maravert



unit color;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
ColorDialog1: TColorDialog;
Panel1: TPanel;
Label1: TLabel;

procedure Button1Click(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Guia : Integer;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
antesColor, actualColor : Tcolor;
i,j : Integer;

begin

if Guia = 0 then begin
guia := 1;
actualColor := Panel1.Color;
antesColor := 0;
end
else
begin
antesColor := actualColor;
actualColor := Panel1.Color;
end;

for i := 0 to (Image1.Height - 1) do begin
for j := 0 to (Image1.Width - 1) do
begin
// es del color que quiero cambiar?
if (Image1.Canvas.Pixels[i,j] = antesColor) then
begin
Image1.Canvas.Pixels [i,j] := actualColor;
end;
end;
end;


end;


procedure TForm1.Panel1Click(Sender: TObject);
var
a: Tcolor;
begin
ColorDialog1.color := panel1.color;
if Colordialog1.Execute then
begin
panel1.Color:= ColorDialog1.Color;
// label1.caption := inttostr (panel1.Color);
end;
end;



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


end.
Responder Con Cita