首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi相当于VB的"DirectCast"?

Delphi相当于VB的"DirectCast"?
EN

Stack Overflow用户
提问于 2012-09-20 04:46:53
回答 2查看 374关注 0票数 3

在VB.Net中,您可以使用"DirectCast“向其他DirectX应用程序发送鼠标点击或其他事件。

在Delphi中有没有类似的东西?或者其他有用的方法吗?

代码语言:javascript
复制
        Public Sub ClickToL(ByVal WindowHandle As IntPtr, ByVal X As Integer, ByVal Y As Integer)
        Dim num As Integer = Me.MakeLong(X, Y)
        Form1.SendMessage(WindowHandle, DirectCast(&H201, IntPtr), IntPtr.Zero, DirectCast(num, IntPtr))
        Form1.SendMessage(WindowHandle, DirectCast(&H202, IntPtr), IntPtr.Zero, DirectCast(num, IntPtr))
    End Sub

此示例将鼠标单击发送到最小化的应用程序(DirectX)

EN

回答 2

Stack Overflow用户

发布于 2012-09-20 05:12:11

调用SendMessage不需要强制转换:

代码语言:javascript
复制
SendMessage(WindowHandle, WM_LBUTTONDOWN, 0, MakeLong(X, Y));
SendMessage(WindowHandle, WM_LBUTTONUP, 0, MakeLong(X, Y));

无论如何,您的VB.net代码错误地将SendMessage的第二个参数声明为IntPtr。它应该是一个无符号32位整数。

如果您确实需要在Delphi中实现强制转换,那么从一种类型到另一种类型,您有两个选择。未经检查的演员阵容,

代码语言:javascript
复制
X := SomeType(Y);

它将Y强制转换为SomeType类型,而不进行运行时检查。或者是被选中的演员阵容,

代码语言:javascript
复制
X := Y as SomeClass;

如果Y不是SomeClass,则会引发异常。

票数 3
EN

Stack Overflow用户

发布于 2012-09-20 05:01:39

DirectCast在Delphi中的等价物是类型转换。

例如,将引用变量强制转换为类Form

代码语言:javascript
复制
VB:      DirectCast(myRef, Form)

Deplhi:  Form(myRef)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12502654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档