I. Chargement d'un curseur animé depuis une ressource▲
À ce jour, je n'ai trouvé qu'une solution pour charger un curseur animé à partir d'une ressource. C'est de sauvegarder la ressource dans un fichier temporaire puis de charger le curseur animé depuis le fichier temporaire.
Exemple :
Créer un fichier ressource « fichier.rc » à ajouter au projet :
MCursor RCDATA cursor.ani
Dans « Unit.cpp » :
const
TCursor crMyCursor =
401
;
//.............
//Sur l'événement OnCreate de la Form :
void
__fastcall TForm1::
FormCreate(TObject *
Sender)
{
TResourceStream *
MRes =
new
TResourceStream((int
)HInstance,"MCursor"
,RT_RCDATA);
char
TempFileName[MAX_PATH];
char
TempDir[MAX_PATH];
GetTempPath(MAX_PATH, TempDir);
GetTempFileName(TempDir, "~"
, 0
, TempFileName);
//Création du nom de fichier temporaire
MRes->
SaveToFile(TempFileName);
Screen->
Cursors[crMyCursor] =
LoadCursorFromFile(TempFileName);
Cursor =
crMyCursor;
DeleteFile(TempFileName);
delete
MRes;
}
Une solution plus simple, mais qui ne fonctionne que sous Windows XP, 2000 et NT.
(Je n'ai pas testé sous 2000 et NT.)
Créer un fichier ressource à ajouter au projet : « Ress.rc »
#include
"ress.h"
MCursor ANICURSOR cursor.ani
Un fichier entête ressource : « Ress.h »
#define ANICURSOR 21
#define MCursor 210
Fichier principal : « Unit1.cpp »
#include « ress.h »
//........
const
TCursor crAniCur =
401
;
//........
//Sur l'événement OnCreate de la Form :
void
__fastcall TForm1::
FormCreate(TObject *
Sender)
{
Screen->
Cursors[crAniCur]=
LoadCursor(HInstance,MAKEINTRESOURCE(MCursor));
Cursor=
crAniCur;
}