以下のようなプログラムをかきました。
procedure TfrmPFM_IN_SLTSCR3.Chart1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
screen.Cursor := crCross;
end;
end.
実際は、Chart1上だけでマウスをcrCrossにしたいのですが
どなたか、ご教授お願いします。
設計時にChartのCursorプロパティを変更でいいんではないでしょうか。
設計時にChartのCursorプロパティを変更するのではなく
プログラムに書きたいのですが
無理なのでしょうか?
下のようなプログラムを書いたのですが
思うように動いてくれません。
procedure TfrmPFM_IN_SLTSCR3.Button1Click(Sender: TObject);
begin
Chart4.Cursor:= crCross;
end;
end.
procedure TfrmPFM_IN_SLTSCR3.Button1Click(Sender: TObject);
begin
//Chart4.Cursor:= crCross;
Chart4.OrigianlCursor:= crCross;
end;
というのは、どうでしょう?
screen.Cursor := crCrossは有効なんですよね?ChartのCursorが変更できないと。
それならば、
フォームに、
protected
procedure CMMouseenter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseleave(var Message: TMessage); message CM_MOUSELEAVE;
procedure ChangeMouseCursor;
と宣言し、その実体を、
procedure TForm1.CMMouseenter(var Message: TMessage);
begin
inherited;
ChangeMouseCursor;
end;
procedure TForm1.CMMouseleave(var Message: TMessage);
begin
inherited;
Screen.Cursor := crDefault;
end;
procedure TForm1.ChangeMouseCursor;
var
p: TPoint;
begin
GetCursorPos(p);
if FindVCLWindow(p) = Panel1 then
Screen.Cursor := crCross
else
Screen.Cursor := crDefault;
end;
こんな感じにすればできると思います。
フォームがTForm1、crCossにする対象がPanel1の場合です。適当に変更してください。
(誤) Chart4.OrigianlCursor:= crCross;
(正) Chart4.OriginalCursor:= crCross;
にしのさん、通りすがりさんありがとうございます。
思うように動きました。
ツイート | ![]() |