Código Delphi
[-]procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Color := Form1.Color;
end;
procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Puntos: array [0..2] of TPoint;
begin
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Puntos[0].X := 0;
Puntos[0].Y := Y;
Puntos[1].X := X;
Puntos[1].Y := Y;
Puntos[2].X := X;
Puntos[2].Y := 0;
image1.Canvas.Polyline(Puntos);
end;
EDITO:
Evidentemente lo que he hecho es repintar la imagen con el color del fondo del formulario. Pero si lo que quieres es dibujar sobre un gráfico (que la imagen que uses tenga algún objeto cargado en Picture) debería ser algo más parecido a esto:
Código Delphi
[-]implementation
{$R *.dfm}
var
MiDibujo: TPicture;
procedure TForm1.FormCreate(Sender: TObject);
begin
MiDibujo := TPicture.Create;
MiDibujo.LoadFromFile('D:\Delphi3\MartianMouse.bmp');
Image1.Width := MiDibujo.Width;
Image1.Height := MiDibujo.Height;
Image1.Canvas.Draw(0, 0, MiDibujo.Graphic);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
With Image1.Canvas do
begin
Draw(0, 0, MiDibujo.Graphic);
MoveTo(0, Y);
LineTo(Image1.Width, Y);
MoveTo(X, 0);
LineTo(X, Image1.Height);
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MiDibujo.Free;
end;
end.