Delphi 7 アプリケーションを作成しました。メイン フォームは、次のプロパティを持つ TForm オブジェクトです。
BorderIcons:
- biSystemMenu = True
- biMinimize = True
- biMaximize = False
- biHelp = False
BorderStyle = bsSizeable
Position = poScreenCenter
Event OnCanResize: Resize := FALSE;
アイデアは、フォームを最大化することもサイズを変更することもできないということです。それだけです。正常に動作しますが、特定のシステム (Windows 7 および Windows XP) で実行すると、スクロールバーが表示されます。繰り返しますが、特定のシステムのみです。
これは、ディスプレイの画面解像度が小さすぎて、アプリ ウィンドウがクリッピングされたためだと思いました。そうではありません。アプリは中央にぴったりと表示されました。
これまでのところ、インターネットから多くのトリックやヒントを適用しようとしました。
OnFormShow:
if VertScrollBarVisible(MainForm.Handle) then
begin
MainForm.Constraints.MaxHeight := MainForm.Constraints.MaxHeight + 10;
MainForm.Constraints.MinHeight := MainForm.Constraints.MinHeight + 10;
MainForm.Height := MainForm.Height + 10;
end;
if HorzScrollBarVisible(MainForm.Handle) then
begin
MainForm.Constraints.MaxWidth := MainForm.Constraints.MaxWidth + 10;
MainForm.Constraints.MinWidth := MainForm.Constraints.MinWidth + 10;
MainForm.Width := MainForm.Width + 10;
end;
一部のシステムでは修正されましたが、すべてではありませんでした。
これは私を困惑させます。
TForm.Scaled := FALSE と TForm.AutoScroll := FALSE を設定する別のヒントを得ました。これらのシステムは修正されましたが、フォームの下部が切り取られていました! ... 若干。
だから、今私は尋ねています...
WIDTH、HEIGHT などのこれらの TForm パラメータは、システムのどこかに保存されて保存されますか? そして、Windows OS はアプリにその値を取るように強制しますか?
過去に、私のアプリにはこの問題がまったくなかったからです。しかし、その後、フォームのサイズを変更し、GUI を追加すると、問題が発生しました。今、私が考えているのは、元の TForm プロパティがどこかに保存されているということです。