• Domingo 22 de Diciembre de 2024, 13:57

Autor Tema:  Dibujar lineas con el raton (Solucionado)  (Leído 2300 veces)

zany_666

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: es
    • Ver Perfil
Dibujar lineas con el raton (Solucionado)
« en: Lunes 24 de Agosto de 2009, 22:07 »
0
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:

Código: Delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ExtCtrls;
  7.  
  8. type
  9.   TForm1 = class(TForm)
  10.     Image1: TImage;
  11.   private
  12.     { Private declarations }
  13.     Pintando : Boolean;
  14.  procedure FormCreate(Sender: TObject);
  15.     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  16.     procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
  17.     procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
  18.  
  19.   public
  20.     { Public declarations }
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25. implementation
  26.  
  27. {$R *.dfm}
  28.  
  29. procedure TForm1.FormCreate(Sender: TObject);
  30. begin
  31.  Pintando := False;
  32.  Image1.Canvas.Refresh;
  33. end;
  34.  
  35. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
  36. begin
  37.  If Button = mbLeft Then
  38.  Begin
  39.    Pintando := True;
  40.    Image1.Canvas.MoveTo (X,Y);
  41.  end;
  42. end;
  43.  
  44. procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
  45. begin
  46.  If Pintando Then
  47.   Image1.Canvas.LineTo (X,Y);
  48. end;
  49.  
  50. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
  51. begin
  52.  If Button = mbLeft Then
  53.   pintando := False;
  54. end;
  55. end.
  56.  
  57.  

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
Una imágen vale más que mil palabras, pero ocupa mucha más memoria...