我正在嘗試從特定的 Delphi 版本中獲取專案 MRU 串列:
function GetDelphiMRUList(const verstr: string; var MRUList: TStringList): Boolean;
var
Reg: TRegistry;
begin
Result := False;
MRUList.Text := '';
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKeyReadOnly('SOFTWARE\Embarcadero\BDS\' verstr);
Result := Reg.KeyExists('Closed Projects');
Reg.CloseKey;
if Result then
begin
// How to get the MRUList?
end;
finally
Reg.Free;
end;
end;
用法:
procedure TForm1.FormCreate(Sender: TObject);
begin
var MRUList: TStringList;
MRUList := TStringList.Create;
try
if GetDelphiMRUList('22.0', MRUList) then
CodeSite.Send('TForm1.FormCreate: MRUList', MRUList);
finally
MRUList.Free;
end;
end;
我一直在獲取已關閉專案的串列。
uj5u.com熱心網友回復:
至少在我的系統上,注冊表值被命名為File_0、File_1等,因此檢索此串列很容易:
function GetDelphiMRUList(const verstr: string; MRUList: TStringList): Boolean;
begin
var Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Result := Reg.OpenKey('SOFTWARE\Embarcadero\BDS\' verstr '\Closed Projects', False);
if Result then
begin
MRUList.Clear;
var i := 0;
while Reg.ValueExists('File_' i.ToString) do
begin
MRUList.Add(Reg.ReadString('File_' i.ToString));
Inc(i);
end;
end;
finally
Reg.Free;
end;
end;
(請注意,讓 theMRUList成為var引數是沒有意義的。)
用法:
procedure TForm1.FormCreate(Sender: TObject);
begin
var List := TStringList.Create;
try
if GetDelphiMRUList('21.0', List) then
Memo1.Lines.Assign(List)
else
Memo1.Text := 'Couldn''t get MRU list.';
finally
List.Free;
end;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/402974.html
標籤:
上一篇:帶有物件陣列的貓鼬條件更新
下一篇:TEdgeBrowser-OnNewWindowRequested-在另一個TEdgeBrowser中打開新視窗
