while true do
begin
   if 鼠标是沙漏 then  
      Break;
end请问怎么实现啊

解决方案 »

  1.   

    Screen.Cursorwhile true do
    begin
       if Screen.Cursor = crHourGlass then  
          Break;
    end
      

  2.   

    if Screen.Cursor = crHourGlass
      

  3.   

    如果是判断系统的则:
        if Screen.Cursor = crHourGlass then  
    如果是判断某个控件上的则:
       if 控件.Cursor = crHourGlass then  
      

  4.   

    我做了一个测试,让鼠标一直向右移动,如果在移动的过程
    中变为沙漏就Break,鼠标移到了程序form外面后,我设置了
    另一个程序的form鼠标移上去的时候我设置了鼠标状态变为
    crHourGlass。while True do
    begin
         mouse_event(MOUSEEVENTF_MOVE,1,0,0,0);
         if Screen.Cursor = crHourGlass then  
            Break;
    end;但是程序没有Break,请问是为什么?我觉得没取到状态。
      

  5.   

    //参考如下代码~~
    procedure TForm1.Button1Click(Sender: TObject);
    var
      vCursorInfo: TCursorInfo;
    begin
      while True do begin
        mouse_event(MOUSEEVENTF_MOVE,1,0,0,0);
        vCursorInfo.cbSize := SizeOf(vCursorInfo);
        GetCursorInfo(vCursorInfo);
        Application.ProcessMessages;
        if vCursorInfo.hCursor = Screen.Cursors[crHourGlass] then Break;
      end;
    end;