procedure TForm1.FormPaint(Sender: TObject);
var
    mx,my:integer;begin
    with canvas do
    begin
        moveto (0,my);
        lineto (width,my);
        moveto (mx,0);
        lineto (mx,height);
    end;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var
      my,mx:integer;
  begin
     my:=y;mx:=x;
     invalidate;
end;
我想实现十字光标,不过为什么这样不行呢?怎么样才可以实现在整个屏幕有一个以鼠标为中点的全屏十字光标?,谢谢

解决方案 »

  1.   

    把你的 my、mx 定义为全局变量就行了!!!unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormPaint(Sender: TObject);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
          my,mx:integer;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);
    begin
        with canvas do
        begin
            moveto (0,my);
            lineto (width,my);
            moveto (mx,0);
            lineto (mx,height);
        end;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
         my:=y;mx:=x;
         invalidate;
    end;end.