我知道在程序中修改光标,可以这样screen.cursor:=***;
但如果我想用到delphi自带光标以外的该如何呢?
比如引用c:\cool.cur?

解决方案 »

  1.   

    函数功能:该函数从一个与应用事例相关的可执行文件(EXE文件)中载入指定的光标资源。该函数已被Loadlmage函数替代。    函数原型:HCURSOR LoadCursor(HINSTANCE hlnstance,LPCTSTR lpCursorName);    参数:    hlnstance:标识一个模块事例,它的可执行文件包含要载入的光标。    LpCursorName:指向以NULL结束的字符串的指针,该字符串存有等载入的光标资源名。该参数低位字节和高位字节0组成资源标识器也可以由低位字为资源标识符和高位字为零组成。也可以用MADEINTRES_OURCE宏命令创建该值。要使用Win32预定义的一个光标,应用程序必须把hlnsfance参数设为NULL,并把IpCursorName设为如下值之一:    IDC_APPSTARING:标准箭头和小沙漏;IDC_ARROW:标准光标;IDC_CROSS:十字光标。    返回值:如果成功,返回值是新载入的光标的句柄:如果失败,返回值是NULL。若想获得更多错误信息,请调用GetLastError函数。    备注:LoadCursor函数仅载入没有被载入过的光标资源,否则,它检取已存在的光标资的句柄。仅当IpCursorName参数指向一个光标资源时,该函数才返回一个有效的光标句柄。如果IpCursorName不是指向光标而是指向了其他类型的资源(如icon),则该函数返回值不是NULL,尽管它不是一个有效的光标句柄,该函数为当前显示设备光标搜寻最贴切的光标资源。光标资源可以是彩色或单色的位图。Windows CE:当目标平台不支持鼠标光标时。使用cursor光标组件。该光标组件支持的唯一的光标是等待光标(IDC_WAIT)。使用LoadCursor函数与SetCursor函数可设值等待光标。SetCursor(LoadCursor(NULL,IDC_WAIT))当目标平台不支持鼠标光标时,使用cursor光标组件,该组件以桌面窗口平台同样的方式支持LoadCursor函数,唯一不同的是仅支持单色光标。Windows CE不支持彩色光标。试图载入一个彩色光标,将产生难以预料的结果。返回值是不确定的。
      

  2.   

    上面错了,是LoadCursorFromFile API函数,试试下面:
    var
      hCursor: THandle; //光标句柄hCursor:= LoadCursorFromFile(PChar('c:\cool.cur'));具体可以查看帮助
      

  3.   

    试试这样:
    Const 
      crCool = 1;  Screen.Cursors[crCool]:= LoadCursor(hInstance, Pchar('c:\cool.cur'));
      Screen.Cursor:= crCool;还原是
     Screen.Cursor:= crDelfault;或者把cool.cur放在应用程序同个目录,上面可改为:
    Screen.Cursors[crCool]:= LoadCursor(hInstance, Pchar('cool.cur'));
      

  4.   

    //上面说少了,完整如下
    1.你要用Delphi自带的ImageEditor将Cool.cur保存为一个资源文件,如
    Cool.res;
    2.把Cool.res放到应用程序所在的文件夹里,用语句把它链结到应用程序,如
    {$ Cool.res}
    可以将它放到工程文件里面{$ *.res}后面;
    3.Const 
      crCool = 1;在FormCreate中:  Screen.Cursors[crCool]:= LoadCursor(hInstance, Pchar('cool.cur'));
      Screen.Cursor:= crCool;还原是
     Screen.Cursor:= crDelfault;
      

  5.   

    楼主:抱歉!!! :)
    //上面相同的应该改为
    Screen.Cursors[crCool]:= LoadCursor(hInstance, 'COOL');