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.aniUn fichier entête ressource : « Ress.h »
#define ANICURSOR 21
#define MCursor 210Fichier 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;
}

