Delphi에서 Loadcursor()를 사용하여 얻은 커서는 흑백뿐입니다. 프로그램에서 컬러 커서를 얻는 방법은 무엇입니까? 작성자는 다음 프로그램을 만들려고 했습니다.
방법 1: Loadcursorfromfile()을 사용하여 외부에서 아이콘을 커서로 로드
Loadcursorfromfile() 함수는 접미사 *CUR, *ICO 및 *ANI가 있는 파일을 커서로 읽을 수 있습니다. 여기서 ICO는 색상 아이콘 형식(이미지 편집기로 생성 가능)이고 ANI는 애니메이션 커서 형식입니다. 다음은 아이콘을 커서로 여는 데모 프로그램 부분입니다. 커서가 테스트 영역으로 이동하면 커서가 선택한 패턴으로 변경됩니다.
{가정: opendialog1:Topendialog;Bitbtn1:Tbitbtn}
PROcedure TForm1.BitBtn1Click(Sender:TObject);
var tt:pchar;크기:정수;s:문자열;
시작하다
opendialog1.Execute이면 다음
시작하다
size:=length(opendialog1.filename);
getmem(tt,크기);
s:=opendialog1.filename;
strpcopy(tt,s);
screen.cursors[2]:=loadcursorfromfile(tt);
bf.cursor:=2;
freemem(tt,크기);
끝;
끝;
방법 2: 리소스 파일에서 컬러 커서 로드
방법 1을 사용하여 프로그램을 보낼 때 *CUR 파일을 포함해야 하므로 리소스 파일에서 컬러 커서를 로드하는 것이 더 실현 가능한 방법입니다. 컬러 커서를 저장하려면 아이콘을 사용하고, 사용할 때는 아이콘을 임시 파일에 저장하고, Loadcursorfromfile()을 사용하여 임시 파일에서 컬러 커서를 읽습니다.
프로그램 부문:
프로시저 ZloadfromResourse(screenindex:integer;name:Pchar);
var td:ticon;
시작하다
노력하다
td:=ticon.Create;
td.Handle:=LoadIcon(Hinstance,이름);
td.SaveToFile('temp.cur');
screen.Cursors[screenindex]:=loadcursorfromfile(′temp.cur′);
deletefile('temp.cur');
마지막으로
td.free;
끝;
끝;
이 프로그램은 name이라는 아이콘을 일련 번호 screenindex가 있는 커서로 변경합니다.
예:
ZloadfromResource(2,'myicon');
Form1.cursor:=2;