Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ANI-курсоры [D6, Win95/98, Win2k]


Митяй2 ©   (2002-11-07 09:48:00) 

Можно ли в ресурс помещать анимированные курсоры?

Например для обычных курсоров работает следующее:

//----------- В программе -----------------------

Screen.Cursors[1]:=LoadCursor(hinstance,"normal");
Screen.Cursors[2]:=LoadCursor(hinstance,"precision");

//----------------------------------------------------


//---------- Содержимое файла .rc --------------------

normal CURSOR normal.cur
precision CURSOR pre.cur


Можно ли аналогично использовать *.ani-файла.

P.S. Как загружать из файла - знаю (это не подходит).
С уважением, СТОРОННИК Delphi.


Митяй2   (2002-11-25 14:46:00) [1]

Вопрос остается открытым.


МитяЙ2   (2002-11-13 16:52:00) [2]

Может ещё кто-нибудь сообщить?

Заранее БЛАГОДАРЕН!


Митяй2   (2002-11-10 19:43:00) [3]

Спасибо, попробую, правдо
корява-то для нормального программирования!


Андрей Прокофьев   (2002-11-10 14:47:00) [4]

В RC-файле

ANICLOCKS RT_ANICURSOR "CLOCKS.ANI"

А вот функция для чтения этого курсора (через файл)

function LoadAniCursor(Instance: THandle; ResID: PChar): HCursor;
{ Unfortunately I don"t know how we can load animated cursor from
executable resource directly. So I write this routine using temporary
file and LoadCursorFromFile function. }
var
S: TFileStream;
Path, FileName: array[0..MAX_PATH] of Char;
Rsrc: HRSRC;
Res: THandle;
Data: Pointer;
begin
Result := 0;
Rsrc := FindResource(Instance, ResID, "RT_ANICURSOR");
if Rsrc <> 0 then begin
Win32Check(GetTempPath(MAX_PATH, Path) <> 0);
Win32Check(GetTempFileName(Path, "ANI", 0, FileName) <> 0);
try
Res := LoadResource(Instance, Rsrc);
try
Data := LockResource(Res);
if Data <> nil then
try
S := TFileStream.Create(StrPas(FileName), fmCreate);
try
S.WriteBuffer(Data^, SizeOfResource(Instance, Rsrc));
finally
S.Free;
end;
Result := LoadCursorFromFile(FileName);
finally
UnlockResource(Res);
end;
finally
FreeResource(Res);
end;
finally
Windows.DeleteFile(FileName);
end;
end;
end;


Митяй2   (2002-11-10 14:36:00) [5]

Еслиб не пробовал, то и не просил помочь!

Пробовал - не проканывает.

Под словом "аналогично"подразумевается не просто заменить
cur на ani, а еще какие-то изменения. Какие не знаю!

Поэтому и вопрос-то родился.


Ketmar   (2002-11-09 12:30:00) [6]

а взять и попробовать - мама не позволяет?

Satanas Nobiscum! 09-Nov-XXXVII A.S.


Митяй2   (2002-11-09 08:39:00) [7]

Неужто из мастеров никто этого не знает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо