Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
小弟我最近i依 delphi online help 寫了增加 cursor 功能,結果沒反應, 是否少了什麼 ,跟 loadcursor() 有關嗎.
這問題也曾困擾我很久, 參考國外一些 site 的例子(有些也是錯的),才發現自訂滑鼠指標的部分, 在 OnLine Help 中的說明並沒有提到一些細節, 以下的例子以前我曾回答過, 後來那位網友也試出來了, 請您參考看看:
一. 建立專案與一個資源檔
![]() |
1. File | New Project |
![]() |
2. Fild | Save Project, 將 unit1 與 project1 存起來, 假定是 c:\temp 目錄 |
![]() |
3. Tools | Image Editor, 利用 Image Editor 新開一個資源檔( Fild | New | Resource File | Ok ) |
![]() |
4. 在這個資源檔中新建一個 CURSOR_1 的 CURSOR, 並設定好它的 Hot Spot( Image | Hot Spot ) |
![]() |
5. 將資源檔存起來, 存檔時注意要和上述的 Project 存在同一個目錄, 並且不要與 project 的原資源檔檔名重覆, 在本例我們先假定為 MyCursor.res |
二. 程式部分
![]() |
6. 宣告一個常數, 這個常數您必須設成大於零的任何整數 |
![]() |
7. 以 LoadCursor() 函數將自訂的滑鼠指標資源 load 進來
(* --------------------------------------------- *) unit Unit1; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs; const crMyCursor = 1; (* 宣告一個常數 *) type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; (* 請注意 *) (* 這行 $R 不可少, 否則自訂游標就出不來了 *) {$R mycursor.res} implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin (* 將游標資源 load 進來 *) Screen.Cursors[crMyCursor] := LoadCursor(hInstance, 'CURSOR_1'); (* 指定 form1 的 cursor 為自訂滑鼠指標 *) Cursor := crMyCursor; (* 指定 Button1 的 cursor 為自訂滑鼠指標 *) Button1.Cursor := crMyCursor; end; end. |
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |