Вместо ValueListEditor, я бы использовал TListView:
Код | procedure TForm1.Button1Click(Sender: TObject); const KEY = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'; var Reg : TRegistry; DataType : TRegDataType; Values : TStringList; i : Integer; begin Reg := TRegistry.Create; with Reg do try RootKey := HKEY_LOCAL_MACHINE; if OpenKeyReadOnly(KEY) then begin Values := TStringList.Create; GetValueNames(Values); for i := 0 to Values.Count - 1 do with ListView1.Items.Add do begin Caption := Values[i]; DataType := GetDataType(Values[i]); case DataType of rdString : begin SubItems.Add('REG_SZ'); SubItems.Add(Reg.ReadString(Values[i])); end; rdInteger : begin SubItems.Add('REG_DWORD'); SubItems.Add('0x' + IntToHex(ReadInteger(Values[i]), 8)); end; rdBinary : begin SubItems.Add('REG_BINARY'); SubItems.Add('Binary'); end else SubItems.Add('n/a'); SubItems.Add('n/a'); end; end; CloseKey; Values.Free; end; finally Free; end; end;
|
У ListView`a: ViewStyle - vsReport и три колонки (Name, Type, Value).
|