问题标签 [delphi-ide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 与光标位置相关的奇怪的 Delphi IDE 行为
我发现了一个与光标位置相关的非常奇怪的 Delphi IDE 行为。
创建一个示例项目:
我们有一个简单的表单,其中包含一个用于记录的 ListBox 和一个面板。当我们单击面板上的鼠标按钮时,我们会收到鼠标消息,直到按钮被释放。
当鼠标离开面板窗体时会发生奇怪的事情。当我们在后台使用 Delphi IDE 运行应用程序并单击鼠标右键并向右移动时,我们会看到以下内容:
当我们离开Form时,X
和坐标是不同的。Y
好的,也许它与屏幕和客户端坐标之间的对话有关。因此,最小化 IDE,我们会在后台看到桌面并执行相同的操作。
我们看到我们得到了正确的坐标。
请注意,在所有情况下,应用程序都在 Delphi IDE 下运行,但在 Delphi 之外运行不会改变任何事情。当应用程序窗口显示在 Delphi IDE 上时,会发生此行为。所以,我认为这是 Delphi IDE 创建的一些鼠标钩子中的一个错误。
我正在用 XE7 和 10.4 检查这个问题。
我对么?
另外,经过调查,我发现与高 Dpi 功能相关的错误,如果顶部窗口正确使用高 Dpi 和底部窗口在高 DPI 上显示缩放。因此,WM_NCHITTEST 首先转到底部窗口(我们可以将光标悬停在它上面),然后它们根据缩放转换坐标,并且在捕获鼠标的窗口收到消息后,坐标仍保持缩放。在 Windows 7 上测试。
delphi - 在 Windows 10 上使用 Delphi 2007 在调试器下无法检测网络驱动器
可能是我很愚蠢,但是我在检测网络驱动器是否启动时遇到了问题,但只有在 IDE 中运行程序时——在 IDE 之外运行程序时,才能正确检测到网络驱动器。IDE 在 Windows 7 上运行良好。
虽然有问题的程序不同,但我可以通过创建一个新项目并将以下内容添加到 FormsOnActivate
事件中来重现该问题:
假设我有一个网络驱动器T:
,如果我在 IDE 中运行程序,那么上面的总是返回 False,但是如果我从桌面快捷方式运行构建的程序,那么它返回 True。如果我在程序启动后通过单击按钮运行它,我会得到相同的行为。在根目录上做DiskSize()
和给出相同的结果。FindFirst()
这是一个全新的 Windows 10 安装,而不是升级,它是 CodeGear 2007 的全新安装,并应用了所有补丁。我已尝试“以管理员身份运行”并将所有兼容模式恢复到 Windows 7。
我在做傻事吗?