Delphi 用的Char控件 添加FastLine 显示曲线,想实现鼠标点击 取横竖坐标,如何实现,请高手指点非常感

Delphi 用的Char控件 添加FastLine 显示曲线,想实现鼠标点击 取横竖坐标,如何实现,请高手指点非常感,第1张

procedure TForm1Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

var

xx,yy:Double;

begin

Chart1Series[0]GetCursorValues(xx,yy);

Label1Caption:=floattostr(xx);

Label2Caption:=floattostr(yy);

end;

应该可以在StringGrid的消息响应OnSelectCell中得到,ACol,ARow即为相应的坐标,可以通过设置全局变量来得到这两个值,但是不清楚你要用它们来做什么。如果不清楚可以继续讨论。

窗体的OnMouseMove时间中写入下列代码,就可以随时监控鼠标坐标了:

var

P

:

TPoint;

GetCursorPos(P);//得到鼠标坐标

label1Caption

:=

inttostr(pX)

+

'

,'

+

inttostr(pY);//label控件显示鼠标坐标

在Delphi中要通过曲线的x轴取y轴的值,可以使用Interpolate函数来实现。Interpolate函数接收多个参数,第一个参数是要查询的x轴坐标值,剩下的参数依次是x轴坐标对应的y轴坐标值,最后返回查询到的y轴坐标值。

用以下函数实现^_^(虽然是C++定义写法,但是Delphi定义与之相同)

VOID mouse_event( DWORD dwFlags,

DWORD dx,

DWORD dy,

DWORD dwData,

ULONG_PTR dwExtraInfo

);

参数说明一下:)

dwFlags 指定鼠标的动作,移动或者点击,可有以下参数

MOUSEEVENTF_ABSOLUTE 指定其后参数dx,dy为绝对坐标,否则为相对坐标

MOUSEEVENTF_MOVE 指定移动鼠标

MOUSEEVENTF_LEFTDOWN 指定鼠标左键按下

MOUSEEVENTF_LEFTUP 指定鼠标左键d起

dx,dy 指定了鼠标的坐标,如果第一个参数有MOUSEEVENTF_ABSOLUTE 则为绝对坐标,否则为相对坐标。

最后两个参数一般设为0,具体解释请参考MSDN或Delphi帮助。

如果需要程序运行时自动点击窗体中某个点,首先需要获取该点的绝对坐标(相对于整个屏幕),一般是将窗体的坐标+上窗体内的坐标。如(50,50)的绝对坐标可能是(Form1Left+50,Form1Top+50),此值不一定准确,需要自己修正。

mouse_event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_ABSOLUTE,Form1Left+50,Form1Top+50,0,0);

mouse_event(MOUSEEVENTF_LEFTUP or MOUSEEVENTF_ABSOLUTE,Form1Left+50,Form1Top+50,0,0);

这样就可以实现模拟鼠标点击的效果。

写在OnMouseDown事件上,不要写在OnClick上。代码如下(窗体名为Form1,编辑框为Edit1)

procedure

TForm1FormMouseDown(Sender:

TObject;

Button:

TMouseButton;

Shift:

TShiftState;

X,

Y:

Integer);

begin

Edit1Text

:=

'X:'

+

IntToStr(X)

+

'

Y:'

+

IntToStr(Y);

end;

其实你需要写的只是begin和end之间那句。

clienttoscreen 是将控件相对窗体的坐标转换成 屏幕坐标

比如说 btn1left := 8;form1left:=200;

那么btn1left用clienttoscreen 后就是208了

不知道你说的是不是这个意思

以上就是关于Delphi 用的Char控件 添加FastLine 显示曲线,想实现鼠标点击 取横竖坐标,如何实现,请高手指点非常感全部的内容,包括:Delphi 用的Char控件 添加FastLine 显示曲线,想实现鼠标点击 取横竖坐标,如何实现,请高手指点非常感、Delphi7 怎样获得StringGrid中单元格坐标、delphi 怎么检测鼠标坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9492774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存