Le curseur obtenu en utilisant Loadcursor() dans Delphi est uniquement en noir et blanc. Comment obtenir un curseur coloré dans le programme ? L'auteur a essayé de créer le programme suivant :
Méthode 1 : utilisez Loadcursorfromfile() pour charger l'icône en tant que curseur depuis l'extérieur
La fonction Loadcursorfromfile() peut lire des fichiers avec le suffixe *CUR, *ICO et *ANI comme curseurs, où ICO est un format d'icône de couleur (peut être produit avec Image Editor) et ANI est un format de curseur animé. Ce qui suit est un segment de programme de démonstration qui ouvre une icône sous forme de curseur Lorsque le curseur se déplace vers la zone de test, le curseur se transforme en motif sélectionné ;
{Supposons : opendialog1:Topendialog;Bitbtn1:Tbitbtn}
PRécédure TForm1.BitBtn1Click(Expéditeur:TObject);
var tt:pchar;taille:entier;s:chaîne;
commencer
si opendialog1.Execute alors
commencer
size:=longueur(opendialog1.filename);
getmem(tt,taille);
s:=opendialog1.filename;
strpcopy(tt,s);
screen.cursors[2]:=loadcursorfromfile(tt);
bf.cursor:=2;
freemem(tt,taille);
fin;
fin;
Méthode 2 : charger le curseur coloré à partir du fichier de ressources
Lors de l'envoi du programme en utilisant la méthode 1, le fichier *CUR doit être inclus, donc charger le curseur coloré à partir du fichier de ressources est une méthode plus réalisable. Utilisez une icône pour stocker le curseur coloré, stockez l'icône dans un fichier temporaire lorsque vous l'utilisez et utilisez Loadcursorfromfile() pour lire le curseur coloré à partir du fichier temporaire.
Segment de programme :
procédure ZloadfromResourse(screenindex:integer;name:Pchar);
var td:ticon;
commencer
essayer
td:=ticon.Create;
td.Handle:=LoadIcon(Hinstance,nom);
td.SaveToFile(′temp.cur′);
screen.Cursors[screenindex]:=loadcursorfromfile(′temp.cur′);
deletefile(′temp.cur′);
enfin
td.gratuit;
fin;
fin;
Ce programme change l'icône nommée name en curseur avec le numéro de série screenindex ;
exemple:
ZloadfromResource(2,′monicône′);
Form1.cursor:=2;