Hola, me ha surgido un problemilla al intentar dibujar trazos con el ratón sobre un TImage. estuve buscando por internet y encontre un tuto bastante sencillo de como dibujar (de momento solo con una llinea en negro para empezar con algo fácil) pero no me funciona como debe y no se porque es.
Mi diseño es simple: mi TForm con un Timage dentro que cubre todo (align=alClient)
Mi codigo con ayuda del tuto:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
private
{ Private declarations }
Pintando : Boolean;
procedure FormCreate(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Pintando := False;
Image1.Canvas.Refresh;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft Then
Begin
Pintando := True;
Image1.Canvas.MoveTo (X,Y);
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
If Pintando Then
Image1.Canvas.LineTo (X,Y);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft Then
pintando := False;
end;
end.
Al ejecutar el programa me deberia salir la ventana como un lienzo en blanco (tal como el ejemplo del tutorial) y poder hacer trazos pulsando el boton izq del raton pero no aparaece lienzo en blanco, solo mi Tform como sino hubiese puesto Timage. Sabeis porque podria ser? Puede ser por la version de Delphi? La mia es Turbo Delphi 2006.
Un saludo y gracias adelantadas!!!
EDIT: Ya está!!!! Mi error ha sido que tengo que escoger los procedimientos en Events del Objet Inspector