フォームを閉じたときに、実際に INI ファイルに保存されるのは何ですか?
ひょっとすると、JFS は、極端な値を無視してフォームを時々表示の外に出さないように対策を講じているのかもしれません。INI ロード シーケンスをトレースして、無視される条件を確認してください。対象を絞り込むために、発行やトレースRestorePlacement
方法を試してみてください。
これで ini ファイルを引用しましたが、これは正しい行のようです: NormPos=135,734,623,1367
もう一度、前述の呼び出しを追加し、 1 行ずつRestorePlacement
トレースします。INI ファイルが読み取られていないか、値が適用されていないことがわかります。
procedure InternalRestoreFormPlacement
で終わる可能性が最も高いでしょうJvJVCLUtils.pas
。トレースを続けて、データが INI から読み取られない、または割り当てに失敗する場所と理由を確認します。
繰り返しますが、解決できない場合でも、さらに 2 つのオプションがあります。
プロパティ (メソッドではない) の使用StoredProps
は簡単です。JSF コンポーネントをダブルクリックし、フォームの Left/Top/Width/Height プロパティを保存リストに追加し、保存リストからチェックを外しform position
ます。
プロパティ (メソッドではない) の使用StoredValues
は簡単です。プロパティをダブルクリックし、1 つの文字列プロパティまたは 4 つの整数プロパティを追加します。コンポーネントOnRestorePlacement
とOnSavePlacement
イベントを使用して、フォームの実際の位置との間で更新します。
PS。ユーザーがディスプレイ、ディスプレイ数、またはディスプレイ解像度を変更した場合、ウィンドウが画面の外に出ないように安全対策を講じてください。
PPS。d:\DelphiProjects\Libs\JediVCL\jvcl\examples\JvAppStorage\*.* として確認できる JvFormPlacement および JvFormStorage サンプル
PPPS。JediVCL の公式フォーラムはhttp://newsportal.delphi-jedi.org/index.phpにあります。