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

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

Как загрузить анимационный курсор (ANI) из ресурсов? [D7, WinXP]


Страницы:   1 2

JetuS ©   (2008-01-11 12:35:00) 

Из файла загружается без проблем, но не охота таскать с собой дополнительные файлы, поэтому создаю файл Cur.res из rc-файла такого содержания:
BUSY ANICURSOR 4.ani

Пробую - не работает. Что не так?

Вот код:
const
 crMyCursor = 777;

implementation

{$R *.dfm}
{$R Cur.res}

procedure TForm1.Button1Click(Sender: TObject);
var
 h: THandle;
begin
 h := LoadImage(hInstance, 'BUSY', IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE);
 ShowMessage(IntToStr(h));
 Screen.Cursors[crMyCursor] := h;
 Screen.Cursor := crMyCursor;
end;


  (2008-02-28 22:10:00) [1]

Удалено модератором


ага   (2008-01-17 10:42:00) [2]


> jetus   (17.01.08 08:09) [37]

А я те говорил - давай твой курсор, попробую. Так нет, не послушал.


JetuS   (2008-01-17 09:19:00) [3]

Всё, проблема решена.
Достаточно было удалить строку {$R WindowsXP.res}

Большое спасибо за помощь )


jetus   (2008-01-17 08:09:00) [4]


> Вот модуль:

Гы, действительно работает )
А теперь вот что я сделал: взял другой .ani-файл, назвал его "1.ani" и просто заменил твой. Скомпилировал ресурс. Перебилдил проект. Запускаю - выдаёт: "System Error.  Code: 1814. Указанное имя ресурса не найдено в файле образа."
Беру твой файл назад. Компилю ресурс. Билдю проект. Запускаю - работает.

Кто-нибудь может объяснить мне, что происходит?!
З.Ы. Пробовал на 6 разных .ani-файлах с размерами от 6кБ до 80кБ - одинаково.


ага   (2008-01-16 19:27:00) [5]

Блин, точно пустой:(( Без понятия как оно получилось, чет с недосыпу начудил:( Вот модуль:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
{$R WindowsXP.res}
{$R Anicursor.res}

procedure TForm1.FormCreate(Sender: TObject);
var
 h: Cardinal;
begin
 h:= LoadCursor(HInstance, PChar(200));
 if 0 = h then RaiseLastOSError;
 Screen.Cursors[1]:= h;
 Screen.Cursor:= 1;
end;

end.


jetus   (2008-01-16 18:48:00) [6]


>  На рэмблер вроде ушло.

Спасибо, пришло )
Действительно, ехе-шник рабочий.
А вот с кодом я чего-то не понял: модуль оказался "пустой":
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

end.


Ни упоминания о курсоре.
Естественно, при компиляции ехе-шник без курсора вышел.

То ли ты мне pas-файл не тот выслал, то ли лыжи не едут )


ага   (2008-01-15 15:25:00) [7]

Дык я и так паковал - в ZIP, не приниало. Надо было попробовать ахиву расширение заменить, чет не сообразил с недосыпу:)) На рэмблер вроде ушло.


jetus   (2008-01-15 07:45:00) [8]


> Да я бы отправил, да только твой сервак не хочет принимать
> архив с экзешником.

Запакуй rar-ом, тогда ругаться не будет. А если лень, то кинь на jetus@rambler.ru :)


ага   (2008-01-14 21:55:00) [9]

Да я бы отправил, да только твой сервак не хочет принимать архив с экзешником.


jetus   (2008-01-14 21:04:00) [10]


> С любым я уже пробовал - смотри ага   (13.01.08 05:52) [17]
> Ну твои дела, как знаешь

Гм...
Ну, раз у тебя всё получается, то выложи куда-нибудь архив с проектом (с ехе-шником, rc и res-файлами), а ещё лучше - отправь на jetuso@gmail.com,
буду тебе очень благодарен.


ага   (2008-01-14 19:10:00) [11]


> ALS   (14.01.08 12:30) [26]


> Были аналогичные проблемы, если в рессурсах модуля присутствовал
> XP-манифест.

А у меня почему-то и с манифестом никаких проблем


ага   (2008-01-14 19:05:00) [12]


> JetuS   (14.01.08 11:28) [25]


> Да зачем выкладывать? Возьми любой .ani-файл (даже из папки
> винды) и попробуй с ним.

С любым я уже пробовал - смотри ага   (13.01.08 05:52) [17]
Ну твои дела, как знаешь


jetus   (2008-01-14 18:35:00) [13]


> Были аналогичные проблемы, если в рессурсах модуля присутствовал
> XP-манифест.

Гм... и как узнать, есть ли там манифест?


> компилятор *.rc - файлов для дельфи отстаёт от микрософта,
>  по этому -[26]

Специально уже компилю через микрософтский rc.exe


icWasya   (2008-01-14 17:16:00) [14]

компилятор *.rc - файлов для дельфи отстаёт от микрософта, по этому -[26]


ALS   (2008-01-14 12:30:00) [15]

Когда-то подключал анимированный курсор из rc-файла, прописывал код:
 DARROW 21 darrow.ani
Были аналогичные проблемы, если в рессурсах модуля присутствовал XP-манифест.


JetuS   (2008-01-14 11:28:00) [16]


> Дык потому, что это и есть отдельный тип - анимированный
> курсор.Выложи куда-нить этот файл курсора, попробую с ним
> скомпилить.


Да зачем выкладывать? Возьми любой .ani-файл (даже из папки винды) и попробуй с ним.


ага   (2008-01-14 10:50:00) [17]


>  200-ый лежит себе отдельным типом, а почему?

Дык потому, что это и есть отдельный тип - анимированный курсор.
Выложи куда-нить этот файл курсора, попробую с ним скомпилить.


Dib@zol   (2008-01-13 23:03:00) [18]

> 200-ый лежит себе отдельным типом, а почему?
А вот потому что
> Error Cur.rc 1 13: Invalid cursor format

Просто RC, вестимо (непонятно, правда, накой) маскирует ету проблему...


jetus   (2008-01-13 22:54:00) [19]


> Попробуй MAKEINTRESOURCE() вместо приведения к PChar. И
> посмотри размер скомпиленного ресурса - если он меньше суммарного
> размера .cur и .ani иконок, значит ресурс-компилер просто
> пропускает при построении реса этот .ani файл...

C  MAKEINTRESOURCE() всё аналогично.
Размер полученого .res-файла соответствующий.

Хотя, в принципе, ошибку выдаёт правильную "Указанное имя ресурса не найдено в файле образа.": в ресурсах ехе-файла в группе курсоров есть курсор 201, а 200-го нету. 200-ый лежит себе отдельным типом, а почему?


Dib@zol   (2008-01-13 21:29:00) [20]

Попробуй MAKEINTRESOURCE() вместо приведения к PChar. И посмотри размер скомпиленного ресурса - если он меньше суммарного размера .cur и .ani иконок, значит ресурс-компилер просто пропускает при построении реса этот .ani файл...

ЗЫ Ну уж не знаю чего у тебя там происходит 0_о

в первый раз в жизни такое получаю ©


Страницы:   1 2

Наверх

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