Другие языки программирования и технологии

delphi 7 помогите с МЕМО

r:=TRegistry.Create;
r.RootKey:=HKEY_CURRENT_USER;
r.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);
r.GetValueNames(Memo1.Lines);
for i := 0 to memo1.Lines.Count - 1 do
with memo1 do begin
r.ReadString(s);
Lines.ADD(s); end;
r.Free;
______________________________________
когда я хочу 2 пути (добавляю еще раз этот код с другим путем) он перезаписывает мемо и остается только последний путь. Как сделать чтобы они добавлялись а не перезаписывались (s : string)
Пример заполнения Memo из двух ключей реестра:

unit N98385677;

interface

uses
    Windows, SysUtils, Classes, Controls, Forms,
    Registry, StdCtrls;

type
    TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
    private
        procedure ScanRun(RootKey: HKey; Key: string);
    end;

var
    Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ScanRun(RootKey: HKey; Key: string);
var
    Values: TStringList;
    Reg: TRegistry;
    i: integer;
begin
    Values := TStringList.Create;
    Reg := TRegistry.Create;
    Reg.RootKey := RootKey;
    Reg.OpenKeyReadOnly(Key);
    Reg.GetValueNames(Values);
    for i := 0 to Values.Count - 1 do
        Values[і] := Values[і] + ' -- ' + Reg.ReadString(Values[і]);
    Memo1.Lines.AddStrings(Values);
    Reg.Free;
    Values.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    Memo1.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    ScanRun(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    ScanRun(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run');
end;

end.
СА
Сергей Андреевич
51 590
Лучший ответ
Нусрадин Ибрагимов Да вообще отлично и все вроде верно.
Не то, что некоторые, которые могли бы рассказать о том, как полезен гугл и как надо знать десяток языков, а потом пустится по философическим и тролльским рассуждениям!
Если не ошибаюсь, r.GetValueNames(Memo1.Lines) здесь не нужен.
А что это у Вас такой повышенный интерес к автозагрузке? Подозрительно как-то.
Аясат Кулусов
Аясат Кулусов
8 083
Григорий Макаров меня просят чистить компьютеры и тд. дольше объяснять людям как зайти в редегит, чем дать им программу и и они скинут что там в мемо потом убрать ненужное.

P.S. без GetValueNames он не выводит то что в автозагрузке
Lines.Append(s);
Стас Тейхрев
Стас Тейхрев
2 112