Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.10.2008, 17:25
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию Сохранение в ComboBox

Попалась мне тут одна программка, называется WimMtr. Предназначена для тестирования интернет соединения. Имеется там ComboBox для ввода адреса в интернет для тестирования. Первоначально когда я ее запустил поле для ввода было пустым. Я ввел туда адрес www.yandex.ru, протестил, вышел из программы. Когда запустил ее еще раз, поле опять было пустым, но если нажать на стрелку в ComboBox, то можно было уже подставить адрес www.yandex.ru, т.е. он там уже присутствовал. При вводе других адресов они тоже типа автоматически сохранялись.
В каталоге с программой никаких других файлов нет, т.е. программа состоит из 1 файла.

Вопрос: Как это реализовать? (Может образуется какой-то файл не в каталоге с программой?).
Сриншоты прилагаю.
Изображения
Тип файла: jpg Буфер обмена-1.jpg (14.5 Кбайт, 7 просмотров)
Тип файла: jpg Буфер обмена-2.jpg (14.6 Кбайт, 5 просмотров)
Ответить с цитированием
  #2  
Старый 23.10.2008, 17:33
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,551
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Михалыч
Попалась мне тут одна программка, называется WimMtr. Предназначена для тестирования интернет соединения. Имеется там ComboBox для ввода адреса в интернет для тестирования. Первоначально когда я ее запустил поле для ввода было пустым. Я ввел туда адрес www.yandex.ru, протестил, вышел из программы. Когда запустил ее еще раз, поле опять было пустым, но если нажать на стрелку в ComboBox, то можно было уже подставить адрес www.yandex.ru, т.е. он там уже присутствовал. При вводе других адресов они тоже типа автоматически сохранялись.
В каталоге с программой никаких других файлов нет, т.е. программа состоит из 1 файла.

Вопрос: Как это реализовать? (Может образуется какой-то файл не в каталоге с программой?).
Сриншоты прилагаю.
Например в реестре, в папке "windows", и т.п.
Ответить с цитированием
  #3  
Старый 23.10.2008, 21:43
Roman_s Roman_s вне форума
Прохожий
 
Регистрация: 03.10.2008
Сообщения: 28
Репутация: 10
По умолчанию

IMHO:
Или в виде внутреннего ресурса !!!
__________________
CODDING - Штука тонкая !!!
Ответить с цитированием
  #4  
Старый 23.10.2008, 22:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Сомнительно, что в виде внутреннего реурса. Слишком сложно для простой фичи. Смотреть в реестре. Ну или, если руки у программеров кривые, - в ini-файле в каталоге винды.
Ответить с цитированием
  #5  
Старый 24.10.2008, 01:37
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию

да скорей всего это ини файл, по умолчанию он создается в каталоге с виндой.
Ответить с цитированием
  #6  
Старый 24.10.2008, 10:21
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Реестр самый удобный, думаю, способ!
Ответить с цитированием
  #7  
Старый 24.10.2008, 14:07
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Действительно в реестре, почистил его руками, записи исчезли. А как всетаки это реализовать, ну чтобы в реестре сохранялись?
Ответить с цитированием
  #8  
Старый 24.10.2008, 15:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

С помощью объекта TRegistry.
Примерно так:

Код:
uses 
  Registry;

// procs
procedure SaveListToReg(AList : TStringList; AKey : String);
var
  R : TRegistry;
  I, C : Integer;
begin
  R := TRegistry.Create;
  R.RootKey := HKEY_CURRENT_USER;
  Try
     If R.OpenKey(AKey,True) Then
       Begin
          C := AList.Count;
          R.WriteInteger('Count',C);
          For I := 0 To C-1 Do
            R.WriteString('Item ' + IntToStr(I),AList[i]);
          R.CloseKey;
       End;
  Finally
    R.Free;
  End;
end;

procedure LoadListFromReg(AList : TStringList; AKey : String);
var
  R : TRegistry;
  I, C : Integer;
begin
  AList.Clear;
  R := TRegistry.Create;
  R.RootKey := HKEY_CURRENT_USER;
  Try
     If R.OpenKeyReadOnky(AKey) Then
       Begin
         If R.ValueExists('Count') Then
           Begin
             C := R.ReadInteger('Count');
             For I := 0 To C-1 Do
               If R.ValueExists('Item ' + IntToStr(I)) Then
                 AList.Add(R.ReadString('Item ' + IntToStr(I));
           End;
         R.CloseKey;
       End;
  Finally
    R.Free;
  End;
end;

// usage
procedure Form1Create(...);
begin
  LoadListFromReg(ComboBox1.Items,'Software\MySoft\Combo1');
end;

procedure From1Close(...);
begin
  SaveListToReg(ComboBox1.Items,'Software\MySoft\Combo1');
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025