RT。。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      MyCursor:TIcon;
    begin
    //  image1.Picture:=nil;
      MyCursor := TIcon.Create;
      MyCursor.Handle := GetCursor;
      image1.Canvas.Draw(0,0, MyCursor);
      MyCursor.Free;
    end;取其它控件的鼠标图标,只需要先将鼠标的当前位置保存到一个TPoint变量中,然后设置鼠标到该控件上,接着用上面的代码取光标,然后再从之前保存的TPoint变量中恢复鼠标原来的位置。整个过程会很快,根本不会有太大影响。
      

  2.   

    图片的旋转可参考:
    http://topic.csdn.net/t/20020826/21/972057.html
      

  3.   

    提供一个思路,你看一下结果(bmp_rotate用的是我2#的)
    procedure TForm1.Button1Click(Sender: TObject);
    const
      crMyCursor = 5;
    var
      myc:Tcursor;
      myi:TIcon;
      icf: ICONINFO;
      b1,b2:TBitmap;
    begin
      myc:=Button1.cursor;  //取button1的
      if not GetIconInfo( Screen.Cursors[myc],icf) then
      begin
        ShowMessage(SysErrorMessage(getLastError));
      end;
      myi:=TIcon.Create;
      myi.Handle:= CreateIconIndirect(icf);
      ImageList1.AddIcon(myi);
      b1:=TBitmap.Create;
      b2:= TBitmap.Create;
      b1.Width:=32;
      b1.Height:=32;
      b2.Width:=32;
      b2.Height:=32;
      ImageList1.Draw(b1.Canvas,0,0,0);
      bmp_rotate(b1,b2,90);
      ImageList1.Clear;
      ImageList1.Add(b2,b2);
      ImageList1.GetIcon(0,myi);
      Screen.Cursors[crMyCursor] :=  myi.Handle;
      Button1.cursor:= crMyCursor;  //赋给button1
      b1.Free;
      b2.Free;
    end;