◆ [Delphi] マウスカーソル名を取得する
どーもボキです。

フォームのCursorプロパティをデフォルト設定で利用している場合、
幅を調整する際は、自動的にカーソルが「⇔」に変更される。

しかしカーソルが「⇔」に変更されているときも、
Screen.Cursor で取り出せるカーソル名は、デフォルト(crDefault)のままである。

現在のカーソル名の判別が必要なときは、以下の手法を使えよい。
以下のコードでは、現在のマウス形状名をShowMessageで表示する。
var
i : Integer;
hi : HICON;
begin
hi := GetCursor;

for i := -1 downto -22 do begin
if hi = Screen.Cursors[i] then
ShowMessage(CursorToString(TCursor(i)));
end;

for i := -1 downto -22 do、これは、
GetCursorで取得したカーソルが、どのマウスカーソルに該当するかチェックしている。

マウスカーソル定数は、Control.pas内に次のように定義されている。
つまりforは、取得したカーソルがcrArrowからcrSizeAllのどれに該当するかチェックしている。
  crDefault     = TCursor(0);
crNone = TCursor(-1);
crArrow = TCursor(-2);
crCross = TCursor(-3);
crIBeam = TCursor(-4);
crSize = TCursor(-22);
crSizeNESW = TCursor(-6);
crSizeNS = TCursor(-7);
crSizeNWSE = TCursor(-8);
crSizeWE = TCursor(-9);
crUpArrow = TCursor(-10);
crHourGlass = TCursor(-11);
crDrag = TCursor(-12);
crNoDrop = TCursor(-13);
crHSplit = TCursor(-14);
crVSplit = TCursor(-15);
crMultiDrag = TCursor(-16);
crSQLWait = TCursor(-17);
crNo = TCursor(-18);
crAppStart = TCursor(-19);
crHelp = TCursor(-20);
crHandPoint = TCursor(-21);
crSizeAll = TCursor(-22);

[PR]
by yozda | 2009-06-24 23:27 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/8486968
トラックバックする(会員専用) [ヘルプ]
<< [日記] スロー演奏動画を作成した [日記] 1Q84 買いました >>