我正在使用Delphi 7在Windows 7下载文件。我是否仅限于在Delphi 7下的Controls.pas中定义的游标数字?
我想在下载过程中更改光标。
我设置Screen.Cursor := crHourGlass;
,但是,在Controls.pas
看着不断光标号码后,我想知道是否有其他数字我可以用它来改变光标为(我不想增加一个光标到我的资源文件,我只想使用我可以使用的标准数字,而无需添加资源)。
我正在使用Delphi 7在Windows 7下载文件。我是否仅限于在Delphi 7下的Controls.pas中定义的游标数字?
我想在下载过程中更改光标。
我设置Screen.Cursor := crHourGlass;
,但是,在Controls.pas
看着不断光标号码后,我想知道是否有其他数字我可以用它来改变光标为(我不想增加一个光标到我的资源文件,我只想使用我可以使用的标准数字,而无需添加资源)。
确实其他数字产生意 充分游标
号其它数量除了built-in cursors constants将产生一个缺省光标其等同于TCursor(crDefault)
(换言之 - HCURSOR(Screen.Cursors[crDefault])
)。这些内置游标驻留在应用程序资源中并在VCL启动时预加载。要添加自定义光标,请在的HAVE中添加CURSOR资源,然后加载并将其添加到VCL。
procedure TForm1.FormCreate(Sender: TObject); platform;
const
crCustom = 42;
var
Cursor: HCURSOR;
begin
Cursor := LoadCursor(HInstance, 'CUSTOM');
Win32Check(Cursor <> 0); // required error check
Screen.Cursors[crCustom] := Cursor;
{ Done, newly added crCustom is ready to use }
Self.Cursor := crCustom; // for example - lets show custom cursor
{ also, TScreen object will manage resource handle }
{ and perform cleanup for you, so DestroyCursor call is unnecessary }
end;
More complicated example with indirect cursor constructionNB:例如有许多缺点:1)DestroyIcon
调用错误2)他们会注意到它,如果有错误的所有API后检查调用
crHourGlass是TCursor类型,它是一个整数别名(或多或少)。它是一个可用于从库存设置游标的索引。
可以使用
Screen.Cursors[Number] := ... needs to be a HCURSOR.
所以,如果你有一个手柄,一个新的光标,您可以使用在Delphi中添加游标。
请注意,crxXX常量和TCursor类型在Controls中定义,Screen类在Forms中定义。所以你可以看到自己的代码。
“标准数字”(crHourglass
,crDefault
等)是由Delphi的VCL提供的预定义游标。你可以定义你自己的,并通过Windows API将它们加载到应用程序中,或者通过Windows API从文件加载到应用程序中,但是没有任何未发布的神奇的定义(或者杂散数字),这将意味着什么。尝试将Screen.Cursors []设置为未知数字而未首先加载游标时,
会导致数组超出界限错误,并且在最差的
处出现访问冲突,从而导致显示默认光标(请参阅TScreen.GetCursors
,地址为Forms.pas
) 。
快速解释:TCursorRec
在VCL源中定义为包含指向下一条记录,索引和光标句柄(HCURSOR
)的指针的记录。它基本上是一个单链表,当你通过访问Cursors
列表来询问游标时,VCL从第一项开始查找列表,然后依次逐步查找,直到找到与请求的索引匹配的索引(在指向它将光标设置为该项目的值HCURSOR
),或者确定您所请求的索引未分配,在这种情况下,将返回默认光标。
是的,我知道,并已找到了所有那。问题是,其他数字是否意味着完整的游标。 – Edelcom 2011-05-25 13:59:38