Delphi Q&A
Опубликовано: 27.12.2002
Исправлено: 10.12.2016
Версия текста: 1.0
Q. Не могу загрузить анимированный курсор из ресурса:
A. При загрузке из ресурсов приложения первым аргументом у LoadCursor должен быть HInstance (или Module.ResInstance, если предполагается использовать отдельную dll для ресурсов). С нулем она может загружать только стандартные курсоры.
Вот как это делается:
Curs.rc
51 21 "dinosaur.ani"
52 21 "horse.ani" |
Unit1.pas
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[1] := LoadCursor(HInstance, pChar(51));
Screen.Cursors[2] := LoadCursor(HInstance, pChar(52));
end;
|
Компилятор ресурсов от Borland, похоже, не знает слова ANICURSOR, и создаёт ресурс с типом "ANICURSOR", а вот MS-овский создаёт ресурс с типом 21. Понятно, что LoadCursor не может найти наши ресурсы, даже если мы подали ему HInstance — он то просматривает тип 21.
Эта статья опубликована в журнале
RSDN Magazine
#5-2004. Информацию о журнале можно найти здесь