TWindowState型をINIファイルに書き込み、読込みをするには?

解決


Kawagoe  2004-03-05 02:26:58  No: 7573

こんにちは。
川越と申します。

フォームを閉じる時に、フォームのサイズや位置情報をINIファイルに
書き込もうとしているのですが、フォームの表示のしかた(通常の状態、
最大化、最小化)の書き込み方が分かりません。
TWindowState型をINIファイルに書き込む際はどのようにすればよろし
いのでしょうか。

通常の状態=0、最大化=1、最小化=2に置き換えて、WriteIntegerでINI
ファイルに書き込み、読み込みを行うようにはしているのですが、できれ
ば直接INIファイルにTWindowState型で書き込めないものかと思っており
ます。

ご存知の方がいらっしゃいましたら、アドバイスいただけないでしょうか。
よろしくお願いします。


通りすがり  2004-03-05 02:38:32  No: 7574

WriteInteger('Win','State',Integer(WindowState));
WindowState := TWindowState(ReadInteger('Win','State',0));
ではだめでしょうか?


SOD  2004-03-05 03:13:00  No: 7575

こんな方法があります。

usesにTypInfoを追加します。

○TWindowState型の値を文字列へ変換する

  var
    Str : String ; //変換後の文字列
  Str := GetEnumName(TypeInfo(TWindowState),Ord(WindowState)) ;

○文字列をTWindowState型の値へ変換する

  var
    dummyWindowState : TWindowState ; //変換後のWindowState値
  として、
  dummyWindowState := TWindowState(GetEnumValue(TypeInfo(TWindowState)
                                  ,'ここに変換させる文字列をセット')) ;

ヘルプに載っているかは定かではありません。
ソースを見てみるのが確実でしょう。
上記は一例ですが、これはTWindowStateに限らずあらゆる列挙型に使用できます。

いかがでしょうか?


kawagoe  2004-03-05 18:39:46  No: 7576

通りすがりさん
SODさん

アドバイスを頂きありがとうございます。

お二人の方法で、INIファイルに書き込んでみたところ、見事INIファイル
に書き込むことができました。

>通りすがりさん
置き換え用のソースがなくなり、一行のソースでINIファイルに書き込める
ため、ソースがすっきりしました。

>SODさん
確かに、これは便利ですね。
これからも、この方法のお世話になることが多々ありそうです。

お二人とも、ありがとうございました。m(_)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加