delphi.gif (306 バイト) レジストリの使い方


レジストリを使うと、アプリケーションが終了した状態を保存したり、デフォルトの値を設定したりが簡単にできます。レジストリはWindowsが管理するデータベースでAPIも用意されていますが、DelphiではTRegistryコンポーネント(非ビジュアル)によって簡単にアクセスできます。

(注意)レジストリの操作はTRegIniFileでも行うことができます。

 

toach.gif (917 バイト) TRegistryを初期化するには

TRegistryは非ビジュアルコンポーネントなのでコンストラクタを呼び出す必要があります。

var
m_reg: TRegsitry;
....
m_reg := TRegistry.Create;

 

toach.gif (917 バイト) レジストリの内容を読むには

レジストリはキー(ファイルシステムのフォルダに相当)と名前によって識別します。まず、キーを開いてから名前を指定してその内容を読み取ります。キーはRootKeyとサブKeyに分かれていますが、RootKeyはふつうデフォルトのままで使用します。キーは\Software\MyKeyなどと指定します。

{ 指定されたキーの指定名の内容(文字列とする)を読む }
procedure TForm1.cmdReadClick(Sender: TObject);
begin
    if m_reg.OpenKey(txtSubkey.Text, False) = False then
    begin
        MessageDlg('指定したキーが開けません。', mtError, [mbOK], 0);
        Exit;
    end;
    txtValue.Text := m_reg.ReadString(txtName.Text);
    m_reg.CloseKey;
end;

toach.gif (917 バイト) レジストリに内容を書き込むには

読むときと同じにキーを開いてから、名前を指定してデータを書き込みます。その名前がレジストリに登録されていないときは作成されますが、キーがないときはCreateKeyメソッドで作成する必要があります。

procedure TForm1.cmdWriteClick(Sender: TObject);
begin
    if m_reg.OpenKey(txtSubkey.Text, False) = False then
    begin
        MessageDlg('指定したキーが開けません。', mtError, [mbOK], 0);
        Exit;
    end;
    m_reg.WriteString(txtName.Text, txtValue.Text);
    m_reg.CloseKey;
end;