El cursor obtenido al usar Loadcursor() en Delphi es solo blanco y negro. ¿Cómo obtener un cursor de color en el programa? El autor intentó crear el siguiente programa:
Método 1: utilice Loadcursorfromfile() para cargar el icono como cursor desde el exterior
La función Loadcursorfromfile() puede leer archivos con el sufijo *CUR, *ICO y *ANI como cursores, donde ICO es un formato de icono de color (se puede producir con Image Editor) y ANI es un formato de cursor animado. El siguiente es un segmento de programa de demostración que abre un icono como cursor. Cuando el cursor se mueve al área de prueba, el cursor cambiará al patrón seleccionado;
{Supongamos: opendialog1:Topendialog;Bitbtn1:Tbitbtn}
Procedimiento TForm1.BitBtn1Click(Remitente:TObject);
var tt:pchar;tamaño:entero;s:cadena;
comenzar
si opendialog1.Ejecutar entonces
comenzar
tamaño:=longitud(opendialog1.filename);
getmem(tt,tamaño);
s:=opendialog1.nombre de archivo;
strpcopy(tt,s);
screen.cursors[2]:=loadcursorfromfile(tt);
bf.cursor:=2;
freemem(tt,tamaño);
fin;
fin;
Método 2: cargar el cursor de color desde el archivo de recursos
Al enviar el programa usando el método 1, se debe incluir el archivo *CUR, por lo que cargar el cursor de color desde el archivo de recursos es un método más factible. Utilice un icono para almacenar el cursor de color, almacene el icono en un archivo temporal cuando lo utilice y utilice Loadcursorfromfile() para leer el cursor de color del archivo temporal.
Segmento del programa:
procedimiento ZloadfromResource(screenindex:integer;nombre:Pchar);
var td:ticon;
comenzar
intentar
td:=ticon.Crear;
td.Handle:=LoadIcon(Hinstancia,nombre);
td.SaveToFile(′temp.cur′);
screen.Cursors[screenindex]:=loadcursorfromfile(′temp.cur′);
eliminararchivo(′temp.cur′);
finalmente
td.gratis;
fin;
fin;
Este programa cambia el icono llamado nombre al cursor con el índice de pantalla del número de serie;
ejemplo:
ZloadfromResource(2,′myicon′);
Formulario1.cursor:=2;