4

我正在整理我的(Delphi)应用程序,并且我一直在访问浮动表单大小和位置持久性,这对于更大屏幕的房地产和多显示器来说似乎越来越重要。显然,通常希望在用户关闭表单时在同一位置重新打开用户的表单,但可能并非总是如此,例如,模态对话框可能会证明在用户视线前打开砰砰声,即在主监视器中心屏幕上。网上似乎很少有关于此的内容,而且商业应用程序似乎不一致,尤其是在多显示器方面。所以,一些(可能是相反的!)规则让我们开始......

  • 非模态表单应始终在关闭的大小和位置重新打开。
  • 模态表单(即带有确定/取消、是/否按钮)应该以之前的大小(如果相当大)重新打开,但在应用程序所在的监视器的中心。
  • 应在应用程序所在的监视器的中心打开一个信息消息框。
  • 应在主监视器的中心打开一个警告或错误对话框。

在此先感谢,布赖恩

4

3 回答 3

2

“非模态表格应始终在关闭的大小和位置重新打开。”

首次打开时,它们必须具有默认位置和大小。你对此有什么规定吗?

我会添加限定符:如果屏幕分辨率/显示器计数与上次打开此表单时不同,则它将恢复为默认位置。因此,没有无法访问的表单在屏幕区域的右侧和下方恢复了 400 像素。

“应该在主监视器的中心打开一个警告或错误对话框。”

我不明白您为什么将消息框从“应用程序所在的监视器”(以下称为 MWTAR)移动到主监视器。你知道下注者在看MWTAR;毕竟他刚刚做了一些“坏事”。你为什么要换显示器,现在你有重要的事情要说?

(毕竟,如果这是一个包含有用诊断的错误对话框,他无论如何也不会阅读它。我认为没有必要对他隐藏它。)

进一步的思考。错误模式对话框的一个问题是,无论它们在哪里弹出,用户可能会在输入其他内容时意外按下“Enter”并关闭它。我知道我经常这样做。

我见过的一个克服这个问题的技巧是在第一次显示对话框时禁用 Ok 按钮。对话框中有一个 3 秒倒计时的计时器,在按钮上附加的小标签中显示剩余时间。所以下注者知道他很快就能解散这件事。

显然,这必须非常非常谨慎地使用,并且只能在最罕见和最重要的对话框中使用。但这让我觉得很聪明。也许所有需要做的就是在三秒钟后将 Ok 设为默认按钮。

于 2009-07-11T08:50:01.200 回答
2

对话框不应该在显示器中央打开。考虑一台分辨率为 2560 x 1600 像素的 30" 显示器——在其中一台显示器上使用最大化的应用程序仅在非常特定的情况下才有意义。如果应用程序表单位于该巨大屏幕区域的角落之一,那么用户会需要将鼠标光标从其当前位置移动到屏幕中心,并在关闭对话框后返回。此外,在正常的观看距离下,可能不可能同时看到所有屏幕,因此中心活动窗口将比屏幕中心更“在用户视野前”。任何不记得其位置的对话框都应以其父窗口为中心打开。

我还会考虑以屏幕区域的百分比而不是像素来保存屏幕位置。通过这种方式,使用带或不带大外部屏幕的笔记本电脑将始终最佳地利用屏幕区域 - 使用绝对坐标将使屏幕部分未使用,或者窗口移动到可见区域之外。

于 2009-07-12T10:48:06.460 回答
1

根据平台,当应用程序在发出警报时没有焦点时,它应该避免获得焦点。用户打字太容易忽略警报而没有机会阅读它。

例如,在 Windows 上利用刷新任务栏按钮的能力。

于 2009-07-11T11:40:26.923 回答