delphi.gif (306 バイト) TRegIniFileの使い方


TRegIniFileを使うとレジストリをINIファイルを扱うのと同じ感覚で処理することができます。TRegIniFileはTRegistryから派生しているのでTRegistryのメソッドやプロパティも使用できます。

(注意)TRegIniFileの使い方は、Delphi3.1に追加された「テクニカルハンドブック」にも掲載されているので、参照されることをお勧めします。

 

toach.gif (917 バイト) TRegIniFileオブジェクトを作成するには

コンストラクタCreateを呼び出すと、TRegIniFileのインスタンスが作られ、このとき指定したキーが存在すれば、そのキーが開かれ、存在しなければ作成されます。TRegIniFileでは主キーは必ずHKEY_CURRENT_USERになります。また、uses節にRegistryを宣言しておく必要があります。

delphi1.gif (322 バイト) 

regini := TRegIniFile.Create(txtKey.Text);

例えばHKEY_CURRENT_USER\Software\Testを指定するときは'Software\Test'とします。

 

toach.gif (917 バイト) キーを作成(開く)するには

レジストリをアクセスするためにはINIファイルを開く(または作成する)代わりにキーを開かなければ(または作成)なりません。キーを新たに作成するにはCreateKeyメソッドを使います。すでにキーが存在するときには、OpenKeyを使います。キーが存在するかどうかわからないときは、CreateKeyを使うとキーが存在するときは、そのキーを開きます。

キーの名前はFileNameプロパティに保持されます。

キーを閉じるのはCloseKeyを使います。TRegIniFileのインスタンスをFreeによって破棄すれば、キーは自動的に閉じられます。

delphi1.gif (322 バイト)

if regini.CreateKey(txtKey.Text) = False then
  MessageDlg('キーを作成できない。', mtError, [mbOK], 0);

キーの先頭に\を付ければHKEY_CURRENT_USERに対する絶対位置、付けなければ現在のキーに対する相対位置にキーが作成されます。例えば、\NewKeyとすればHKEY_CURRENT_USER\NewKeyが作成されます。

 

toach.gif (917 バイト) 値を書いたり読んだりするには

値を読むときはReadxxx、値を書くときはWritexxxメソッドを使います。

delphi1.gif (322 バイト)

        4: // 整数を書く
        begin
            regini.WriteInteger('Software\MyApp', 'IntValue',
            	StrToInt(txtValue.Text));
        end;

        5: // 整数を読む
        begin
	    iValue := regini.ReadInteger('Software\MyApp', 'IntValue', 0);
            txtValue.Text := IntToStr(iValue);
        end;


toach.gif (917 バイト) TRegistryIniFileについて

Delphi4でTRegistryIniFileが追加されました。機能、使い方はTRegIniFileとほとんど同じですが、メソッドがいくつか追加されているようです。

delphi1.gif (322 バイト)

procedure TForm1.Button1Click(Sender: TObject);
var
    ini: TRegistryIniFile;
begin
    try
        ini := TRegistryIniFile.Create('Software\JreWiz')
    except
        MessageDlg('TRegistryIniFileのインスタンス化に失敗した。', mtError,
        [mbOK], 0);
        Exit
    end;

    Edit3.Text := ini.ReadString('', 'JglPkg', '?');
    ini.Free;
end;