Ver Mensaje Individual
  #3  
Antiguo 14-02-2008
Avatar de PeterPunk
PeterPunk PeterPunk is offline
Miembro
 
Registrado: ene 2008
Ubicación: Vigo
Posts: 22
Reputación: 0
PeterPunk Va por buen camino
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.

Última edición por PeterPunk fecha: 14-02-2008 a las 13:55:16.
Responder Con Cita