4

私は(Delphi)アプリケーションを整理していて、フローティングフォームのサイズと場所の永続性にアクセスしています。これは、より大きな画面の不動産とマルチモニターでますます重要になっているようです。明らかに、ユーザーのフォームを閉じたのと同じ場所で再度開くことが望ましい場合がよくありますが、常にそうとは限りません。たとえば、モーダル ダイアログでは、ユーザーの視界の前、つまりプライマリ モニター センター画面で bang を開くことが正当化される場合があります。これについてネット上にはほとんど出回っていないようで、商用アプリケーションは特に複数のモニターに関して一貫性がないようです。それでは、始めるためのいくつかの (おそらく矛盾する!) ルールを...

  • 非モーダル フォームは、常に閉じたサイズと場所で再度開く必要があります。
  • モーダル フォーム (つまり、[OK]/[キャンセル]、[はい]/[いいえ] ボタンを含む) は、以前のサイズ (サイズが大きい場合) で再度開く必要がありますが、アプリケーションが存在するモニターの中央に表示されます。
  • アプリケーションが存在するモニターの中央に、情報メッセージ ボックスが表示されます。
  • 警告またはエラー ダイアログがプライマリ モニターの中央に表示されます。

前もって感謝します、ブライアン

4

3 に答える 3

2

「非モーダル フォームは、常に閉じたサイズと場所で再度開く必要があります。」

最初に開くときは、デフォルトの位置とサイズが必要です。これについて何かルールはありますか?

修飾子を追加します。画面の解像度/モニター数が、このフォームが最後に開かれたときと異なる場合、デフォルトの位置に戻ります。したがって、アクセスできないフォームは、画面領域の右と下に 400 ピクセルを復元しませんでした。

「プライマリ モニターの中央に警告またはエラー ダイアログが表示されます。」

メッセージボックスを「アプリが存在するモニター」(以降、MWTAR)からプライマリモニターに移動する理由がわかりません。パンターが MWTAR を見ていることがわかります。結局のところ、彼は何か「悪い」ことをしただけです。大事なことがあるのになぜモニターを変えるのですか?

(結局のところ、それが有用な診断を含むエラー ダイアログである場合、彼はとにかくそれを読みません。それを彼から隠す必要はないと思います。)

更なる考察。エラー モーダル ダイアログの問題の 1 つは、エラー モーダル ダイアログがポップアップする場所で、ユーザーが別の何かを入力しているときに誤って 'Enter' を押して閉じてしまう可能性があることです。私はこれをかなり頻繁に行うことを知っています。

これを克服するために私が見たトリックの 1 つは、ダイアログが最初に表示されたときに [OK] ボタンを無効にすることです。ダイアログには 3 秒のタイマーがあり、ボタンに付いている小さなラベルに残り時間を表示します。したがって、パンターは、すぐにそのことを却下できることを知っています。

明らかに、これは非常に慎重に使用する必要があり、最もまれで最も重要なダイアログでのみ使用する必要があります。しかし、それは非常に賢いと思いました。おそらく、3 秒後に [OK] を既定のボタンにするだけで十分です。

于 2009-07-11T08:50:01.200 に答える
2

ダイアログは決してモニター中央に開きます。解像度が 2560 x 1600 ピクセルの 30 インチ モニターの 1 つを考えてみましょう。これらのモニターの 1 つに最大化されたアプリケーションを使用することは、非常に特殊な場合にのみ意味があります。アプリケーション フォームがその巨大な画面領域の隅の 1 つにある場合、ユーザーはマウス カーソルを現在の位置から画面の中央に移動し、ダイアログを閉じた後に元に戻す必要があります. また、通常の視聴距離では、その画面全体を同時に表示することはおそらく不可能です。アクティブなウィンドウは、画面の中心よりも「ユーザーの視界の前」になります. その位置を覚えていないダイアログは、親ウィンドウの中心で開く必要があります.

また、ピクセル単位ではなく、画面領域のパーセントで画面位置を保存することも考えます。このように、大きな外部スクリーンの有無にかかわらずラップトップを使用すると、常に画面領域が最適に使用されます。絶対座標を使用すると、画面の一部が使用されないか、ウィンドウが表示領域の外に移動します。

于 2009-07-12T10:48:06.460 に答える
1

プラットフォームによっては、アラートをスローするときにアプリケーションにフォーカスがない場合は、フォーカスを取得しないようにする必要があります。入力しているユーザーがアラートを読む機会なしにアラートを閉じるのは簡単すぎます。

たとえば、Windowsでは、タスクバーボタンを点滅させる機能を利用します。

于 2009-07-11T11:40:26.923 に答える