Cursorについて


理恵  2003-10-25 00:24:42  No: 5402

以下のようなプログラムをかきました。
procedure TfrmPFM_IN_SLTSCR3.Chart1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
screen.Cursor := crCross;
end;

end.
実際は、Chart1上だけでマウスをcrCrossにしたいのですが
どなたか、ご教授お願いします。


LupinⅢ  URL  2003-10-25 00:33:31  No: 5403

設計時にChartのCursorプロパティを変更でいいんではないでしょうか。


理恵  2003-11-13 19:45:30  No: 5404

設計時にChartのCursorプロパティを変更するのではなく
プログラムに書きたいのですが
無理なのでしょうか?
下のようなプログラムを書いたのですが
思うように動いてくれません。
procedure TfrmPFM_IN_SLTSCR3.Button1Click(Sender: TObject);
begin
 Chart4.Cursor:= crCross;
end;

end.


通りすがり  2003-11-13 19:55:15  No: 5405

procedure TfrmPFM_IN_SLTSCR3.Button1Click(Sender: TObject);
begin
  //Chart4.Cursor:= crCross;
  Chart4.OrigianlCursor:= crCross;
end;
というのは、どうでしょう?


にしの  2003-11-13 19:58:40  No: 5406

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の場合です。適当に変更してください。


通りすがり  2003-11-13 20:02:57  No: 5407

(誤)  Chart4.OrigianlCursor:= crCross;
(正)  Chart4.OriginalCursor:= crCross;


理恵  2003-11-13 20:26:46  No: 5408

にしのさん、通りすがりさんありがとうございます。
思うように動きました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加