Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2008, 20:50   #1
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию как SListBox1 дописать!

Всем привет, помогите дописать инфу в листбокс
я делаю по следующему коду:
Код:
var
del:Treginifile;
begin
  del:=Treginifile.Create('');
  del.OpenKey('software\Microsoft\Windows\CurrentVersion',false);
  del.ReadSection('Run',Slistbox1.Items);
  del.RootKey:=HKEY_LOCAL_MACHINE;
  del.OpenKey('software\Microsoft\Windows\CurrentVersion',false);
  del.ReadSection('Run',Slistbox1.Items);
  del.Free;
видите 1 раз выводится список а 2 раз его переписует, как сделать чтоб 2 раз дописался к 1!
aesoem вне форума Ответить с цитированием
Старый 16.04.2008, 20:53   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Читайте в переменную, а потом из переменной будете добавлять в листбокс... Метод ADD.
mihali4 вне форума Ответить с цитированием
Старый 16.04.2008, 21:08   #3
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

примерно,дайте наводку, так понял но не получается
del.ReadSection('Run',USER);
aesoem вне форума Ответить с цитированием
Старый 16.04.2008, 21:14   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так я ж вроде подробно все написал...
ReadSection делаете не в ListBox, а во временную переменную TMP типа TStrings, а чтобы они в ListBox-е не затирали друг друга (как у вас сейчас), делаете после каждого чтения:
ListBox2.Items.AddStrings(tmp);
и они будут добавляться в конец содержимого ListBox...
mihali4 вне форума Ответить с цитированием
Старый 16.04.2008, 21:22   #5
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

так?
Цитата:
var
del:Treginifile;
tmp:Tstrings;
begin
del:=Treginifile.Create('');
del.OpenKey('software\Microsoft\Win dows\CurrentVersion',false);
del.ReadSection('Run',tmp);
del.RootKey:=HKEY_LOCAL_MACHINE;
del.OpenKey('software\Microsoft\Win dows\CurrentVersion',false);
del.ReadSection('Run',tmp);
sListBox1.Items.AddStrings(tmp);
del.Free;
end;
////
aesoem вне форума Ответить с цитированием
Старый 16.04.2008, 21:54   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В принципе все верно, но строка
sListBox1.Items.AddStrings(tmp);
должна быть после каждой строки с оператором
del.ReadSection('Run',tmp);
А в приведенном варианте у вас добавляется только результат последнего чтения...
mihali4 вне форума Ответить с цитированием
Старый 17.04.2008, 09:40   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

aesoem, еще раз в названии темы будете употреблять capslock и восклицательные знаки, добром это для вас не закончится
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.04.2008, 15:09   #8
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

теперь при нажатии на кнопку возникает ошибка
Код:
procedure TForm1.sBitBtn4Click(Sender: TObject);
var
del:Treginifile;
tmp:Tstrings;
begin
  del:=Treginifile.Create('');
  del.OpenKey('software\Microsoft\Windows\CurrentVersion',false);
  del.ReadSection('Run',tmp);
  del.RootKey:=HKEY_LOCAL_MACHINE;ошибка
  del.OpenKey('software\Microsoft\Windows\CurrentVersion',false);
  del.ReadSection('Run',tmp);
  sListBox1.Items.AddStrings(tmp);
  del.Free;
end;
Изображения
Тип файла: gif Ошибка.GIF (9.8 Кб, 142 просмотров)
aesoem вне форума Ответить с цитированием
Старый 20.04.2008, 10:40   #9
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

сделал так:
var
del:Treginifile;
str:Tstrings;
begin
del:=Treginifile.Create('');
str:=TstringList.Create();
del.OpenKey('software\Microsoft\Win dows\CurrentVersion',false);
del.ReadSection('Run',str);
del.RootKey:=HKEY_LOCAL_MACHINE;
del.OpenKey('software\Microsoft\Win dows\CurrentVersion',false);
del.ReadSection('Run',str);
slistbox1.Items.AddStrings(str);
del.Free;
end;
все равно пишет ток последние данные как с переменными быть
aesoem вне форума Ответить с цитированием
Старый 20.04.2008, 13:35   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Еще раз, для "особо одаренных" (читаем внимательно!):
Цитата:
строка
sListBox1.Items.AddStrings(tmp);
должна быть после каждой строки с оператором
del.ReadSection('Run',str);
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать программу cL1zMa Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2008 14:40
Помогите дописать ShnapS Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2008 21:08
Помогите дописать мои код поиска! AlexII Общие вопросы Delphi 5 17.05.2008 20:07
Помогите дописать программу. ShnapS Паскаль, Turbo Pascal, PascalABC.NET 5 17.05.2008 19:50
Помогите дописать Klyan Общие вопросы C/C++ 8 22.06.2007 01:55