RAD IDE でフォームを開くと、フォームを 1.23 倍に「魔法のように」拡大するアプリケーションがいくつかありますが、すべてではありません。たとえば、947 ピクセルのフォーム幅が突然 1166 ピクセルにジャンプします。120/96 のピクセル比 (1.25 の比) に疑わしいほど近いですが、スケーリングは一貫して 1.23 に近づいています (たとえば、フォームの幅と高さから得られるより大きな整数比によって判断されます)。
.dfm ファイルを見て元の数値を確認できますが、IDE では値が変更されています (高さと幅の拡大、コントロール位置の調整、フォント サイズの拡大など)。
スケーリングと dpi が地雷原であることは知っていますが、関連する設定を (私の知る限り) 変更していません。
影響を受けるプロジェクトと影響を受けないプロジェクトの両方で、フォームのScaledプロパティが「true」に設定され、PixelsPerInchプロパティが 96 に設定されています。開発マシンの画面解像度は 100% に設定されています。これは、これらの問題を回避するための設定です。
この問題があるプロジェクトとそうでないプロジェクトの違いを見つけるために、プロジェクトと IDE 構成ファイルを検索しました。
影響を受ける (および影響を受けない) プロジェクトはすべて、何年にもわたって開発されてきたものです。この動作を確認したのは先週だけです。私の知る限り (私は唯一の開発者です)、スケーリング、dpi などに関連するコードや構成の変更は行っていません。
何が起こっているのか誰にも分かりますか?
私は CBuilder XE3 を使用していますが、これは RAD Studio の問題であると考えているため、この質問にも Delphi XE3 のタグを付けました。
編集 1: また、変更されたコントロールごとに、IDE が次の追加行をスローすることにも気付きました (つまり、、、、、およびの変更に加えTopて) :LeftWidthHeightFont.Height
Margins.Left = 4
Margins.Top = 4
Margins.Right = 4
Margins.Bottom = 4
また、TImages の場合は追加します
ExplicitWidth = <nnn>
ExplicitHeight = <nnn>
編集 2: 不思議なことに、IDE がフォームをスケーリングするとき、フォームに変更済みのフラグは付けられません。つまり、「実際の」変更が行われるまで (たとえば、コントロールの再配置など)、フォームは変更されていないように見えます。変更されたスケールで保存した後にフォームが 2 回目に開かれた場合、それ以上のスケーリングは行われません。構成ファイル:)