![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Неужто из мастеров никто этого не знает?