こんにちは。
川越と申します。
フォームを閉じる時に、フォームのサイズや位置情報をINIファイルに
書き込もうとしているのですが、フォームの表示のしかた(通常の状態、
最大化、最小化)の書き込み方が分かりません。
TWindowState型をINIファイルに書き込む際はどのようにすればよろし
いのでしょうか。
通常の状態=0、最大化=1、最小化=2に置き換えて、WriteIntegerでINI
ファイルに書き込み、読み込みを行うようにはしているのですが、できれ
ば直接INIファイルにTWindowState型で書き込めないものかと思っており
ます。
ご存知の方がいらっしゃいましたら、アドバイスいただけないでしょうか。
よろしくお願いします。
WriteInteger('Win','State',Integer(WindowState));
WindowState := TWindowState(ReadInteger('Win','State',0));
ではだめでしょうか?
こんな方法があります。
usesにTypInfoを追加します。
○TWindowState型の値を文字列へ変換する
var
Str : String ; //変換後の文字列
Str := GetEnumName(TypeInfo(TWindowState),Ord(WindowState)) ;
○文字列をTWindowState型の値へ変換する
var
dummyWindowState : TWindowState ; //変換後のWindowState値
として、
dummyWindowState := TWindowState(GetEnumValue(TypeInfo(TWindowState)
,'ここに変換させる文字列をセット')) ;
ヘルプに載っているかは定かではありません。
ソースを見てみるのが確実でしょう。
上記は一例ですが、これはTWindowStateに限らずあらゆる列挙型に使用できます。
いかがでしょうか?
通りすがりさん
SODさん
アドバイスを頂きありがとうございます。
お二人の方法で、INIファイルに書き込んでみたところ、見事INIファイル
に書き込むことができました。
>通りすがりさん
置き換え用のソースがなくなり、一行のソースでINIファイルに書き込める
ため、ソースがすっきりしました。
>SODさん
確かに、これは便利ですね。
これからも、この方法のお世話になることが多々ありそうです。
お二人とも、ありがとうございました。m(_)m
ツイート | ![]() |