Delphi:处理多个监视器和TForm.Left相对属性

时间:2014-06-18 09:08:40

标签: delphi delphi-xe2 multiple-monitors

当我显示一个表单时,我将它显示在上次使用我保存在ini文件中的TForm.Left属性的位置。

我想添加对多个显示器的支持,因为在2个显示器的情况下,Left可以是2500个,因此2个显示器被视为一个非常宽的显示器。

我想将监视器编号(TForm.Monitor.MonitorNum)保存到ini文件中,但保存相对左侧。 是否有根据监视器告诉Left的属性?

e.g。我有2个1024x768显示器,一个在右侧(主要),一个在左侧(次级/扩展),如果我在右侧监视器上移动一个表格,左侧2个像素Left属性为1026。我我想说“这是监视器2,左边是2”。

感谢。

1 个答案:

答案 0 :(得分:5)

没有TForm的属性告诉它与它所在的监视器的相对位置。您必须减去:Left - Monitor.Left。在你的例子中,这将是1026 - 1024。

无论如何,与仅存储/设置表格的左侧(即1026)相比,我没有看到这种方法的任何优势。您可以使用MakeFullyVisible如果您关心的话,监控安排可能会在会话之间发生变化。