- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Delphi/Formの状態を保存する

はじめに Edit

Formの状態の保存に使うコンポーネント、Window State Componentsについて。

このコンポーネントは、貼り付けるだけで、
.iniや、レジストリにFormのサイズや位置、WindowStateを保存してくれる便利なコンポーネントです。

Torryのコンポーネントのページにあるのは、ちと古いので、
本家からダウンロードしてきましょう。

Window State Components本家

使い方 Edit

基本的に、Demoフォルダを実行して見ればわかります。

コンポーネントとして貼り付けて、.iniに保存する場合 Edit

TPJWdwStateをFormに貼り付けて、
AutoSaveRestore を True にしとけば、
自動的に保存、復元してくれます。

動的生成して、iniに保存する場合 Edit

コンポーネントとして、インストールするのマンドクセ('A`)って時。

とりあえずは、これだけのコードで、ウインドウサイズ、位置を保存してくれる。

1
2
3
4
5
6
7
procedure TMenuForm.FormCreate(Sender: TObject);
begin
  with TPJWdwState.CreateStandAlone(Self) do begin
    AutoSaveRestore := True;
    Options := Options + [woFitWorkArea];
    :
  end;

動的生成の場合、Craeteではなく、CreateStandAlone を使うことに注意。

TPJWdwState.IniFileNameはデフォルトで、EXEファイルの.iniにしたのに自動設定される。

TPJWdwState.Sectionは、デフォルトで、'Window_' + Form.Nameになる。
つまり、Form.Nameが設定してあれば、おまかせで問題なし。

Optionsプロパティ Edit

woIgnoreState, woIgnoreSize
これは、WindowStateと、サイズを無視するプロパティです。

Demosの1のダイアログが、その設定になってます。

woFitWorkArea を ONにしておくと、画面外に出ても、
起動時に自動的に画面内に戻してくれるので便利です。

Demosの2のチェックボックスにチェックすると、画面外に出たら起動時に戻ってきます。

コードだとこう

FWindowStateSaver.Options := FWindowStateSaver.Options + [woFitWorkArea];



Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2007-11-22 Thu 11:45:14 JST (4401d)