0

こんにちは、リボンの現在の状態を保存するにはどうすればよいですか。次に Delphi を使用して exe を開くときにリボンを同じ状態でロードできるようにするにはどうすればよいですか?

4

2 に答える 2

0

Delphiで標準のリボンを使用したことはありません..しかし、@Ljubomirの回答にコメントした後、少し調査することにしました。

ソース コードからカスタマイズ ダイアログの仕組みを調べたところ、リボンが TActionManager に関連付けられていることがわかりました。繰り返しますが、TCustomActionManager のソースを見ると、SaveToFile/SaveToStream LoadFromFile/LoadFromStream メソッドがリボン (アクション マネージャー) の状態情報を保存/ロードする方法であることに気付きました。

一方、TActionManager には FileName プロパティがあります。設定すると、ActionManager の状態が適切なタイミングで自動的にロードおよび保存されます。

これがあなたに光をもたらすことを願っています。

于 2010-09-10T01:19:38.223 に答える
0

Windows レジストリを使用して、アプリケーションを閉じたときにリボンの状態を保存し、アプリケーションを開いたときに復元できます。

これは、レジストリを操作するためのコードです。

      function LoadStringFromRegistry(sKey, sItem,
sDefVal: string; RootKey : HKEY = HKEY_CURRENT_USER): string;
    var
      Reg : TRegistry;
    begin
      Reg := TRegistry.Create(KEY_READ);  // REMOVE
      try
        Reg.RootKey := RootKey;
        if Reg.OpenKey(sKey, false) then
        begin
          Result:=Reg.ReadString(sItem);
          Reg.CloseKey;
        end
        else
          Result:='';
      finally
        Reg.Free;
      end;
    end;


    procedure SaveStringToRegistry(sKey, sItem, sVal : string; RootKey : HKEY = HKEY_LOCAL_MACHINE);
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
      try
        Reg.RootKey := RootKey;
        if Reg.OpenKey(sKey, true) then
        begin
            reg.WriteString(sItem, sVal);
            Reg.CloseKey;
        end;
      finally
        reg.Free;
      end;
    end;

使用リストの状態レジストリ。

サンプル:

  SaveStringToRegistry('Software\Company\Application', 'Left','20',HKEY_LOCAL_MACHINE);
  left := LoadStringFromRegistry('Software\Company\Application', 'Left','',HKEY_LOCAL_MACHINE);

Windows の個々のユーザーの状態を保存する場合は、HKEY_LOCAL_MACHINE の代わりに HKEY_CURREN_USER を使用します。

アプリケーションに別の方法でユーザー管理 (データベース) がある場合は、リボンの状態をデータベースに保存します。

于 2010-09-09T08:27:23.453 に答える