2011-01-14 15 views
2

私はポップアップメニューを持っています。ユーザがシステムにログインするたびに、ポップアップメニューは と表示されますが、このポップアップを表示したくないユーザ彼らの画面では、私はポップアップがログインするたびに表示されないようにチェックボックスを使用します。 チェックボックスをオンにしたユーザーの設定をレジストリに保存して、 のポップアップメニューが表示されないようにするにはレジストリに設定を保存するコード

+0

ちょうどGoogleの "デルファイレジストリ"と最初のヒットは、正確にあなたが望むものです –

+0

レジストリへの書き込みはかなり悪い練習です(あなたがNTのOS設定を変更することはできますが、この場合でさえ、あなたの質問に基づいて、あなたが何をしているのか分からない限り、本当に良いアイデアではありません。 OSレジストリの設定ファイル(ini、xmlなど)の使用を検討してください。 – ComputerSaysNo

+0

@Dorin:レジストリは、アプリケーションにデータを書き込んで、ホイールを再作成しないようにするためのものです。大丈夫です...私は(希望)とアプリケーションが(将来のdelphiリリースで)他のプラットフォームにコンパイルされることを期待しているときにはそれが役に立つと思っていますが、アプリケーションがWindows用であることを前もって知っていれば、 – jachguate

答えて

5

レジストリから/に値を読み書きするには、TRegistryクラスを使用できます。
ヘルプを参照してください。使用例がいくつかあります。書き込みについては

RegNGFS:= TRegistry.Create; 
    try 
    RegNGFS.RootKey := HKEY_CURRENT_USER; 
    if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin 
     MaxSteps:= RegNGFS.ReadInteger('MaxSteps'); 
     StopIN:= RegNGFS.ReadInteger('StopIN'); 
    end; 
    finally 
    RegNGFS.Free; 
    end; 

、このようないくつか::このようないくつかを読んでために

RegNGFS:= TRegistry.Create; 
    try 
    RegNGFS.RootKey := HKEY_CURRENT_USER; 
    if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin 
     RegNGFS.ReadInteger('MaxSteps', MaxSteps); 
     RegNGFS.ReadInteger('StopIN', StopIN); 
    end; 
    finally 
    RegNGFS.Free; 
    end; 

あなたの試験WriteBool、ReadBool、ReadString、WriteStringメソッドのようないくつかの方法で、...
よろしくご連絡ください

+9

HKEY_LOCAL_MACHINE? 1995年にもう一度、誰かが私に言うのを忘れたのですか?真剣に、ユーザー設定は多くの理由でHKEY_CURRENT_USERに入りますが、ユーザーの中には一般的にはHKEY_LOCAL_MACHINEへの書き込みアクセス権がありません。また、書き込みコードは読み取りではなく書き込みでなければなりません。 –

+4

@David Heffernan; TRegistryクラスとsave/writeメソッドを見るのは非常に簡単なサンプルです。ユーザーは値を保存するために正しいキーを捧げる必要があります。 –

+3

@ネフタリですが、それはたくさんの方法で壊れています。値が存在しない場合、読み込みは失敗します。さらに、サンプルコードには書き込みがありません。それはコンパイルされません。はい、私はあなたが意味することを知っていますが、コードを少し編集したいかもしれません。 HKLM/HKCUについては、簡単な例では、権利を必要とせず、実際にOPの要件を満たすものを選択するのが理にかなっています。 –

関連する問題