Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListBox + INI [D7, XP]


Mozgan ©   (2006-04-26 13:37:00) 

Мастера здавствуйте!
Подскажите пожалуйста, в чем ошибка?
Мне нужно в ini записать содержимое листбокса, а потом загрузить обратно из инишки в листбокс.
Вот мой кусок - чета не получается. В чем ошибка не пойму никак...
Если не трудно объясните что к чему. Буду рад!

procedure TForm1.FormCreate(Sender: TObject);
begin
 ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
 List.Items.Strings[k]:=ini.ReadString('path','dir',list.Items.Strings[i]);
 ini.Free;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
 for i:=0 to list.Items.Count-1 do
 ini.WriteString('path','dir',list.Items[i]);
 ini.Free;
end;


Плохиш   (2006-04-26 14:25:00) [1]


procedure TForm1.FormDestroy(Sender: TObject);
var
i: Integer;
begin
ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
try
 ini.WriteInteger('path','count',list.Items.Count-1); for i:=0 to list.Items.Count-1 do
   ini.WriteString('path','dir' + IntToStr(i),list.Items[i]);
finally
 ini.Free;
end;
end;


Плохиш   (2006-04-26 14:22:00) [2]


> Mozgan   (26.04.06 14:05) [9]


procedure TForm1.FormCreate(Sender: TObject);
var
 i, max: Integer;
 sTmp: String;
begin
ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
try
  max := ini.ReadInteger('path','count',-1);
  List.Items.Clear;
  for i := 0 to max do
  begin
    sTmp := ini.ReadString('path','dir' + IntToStr(i), '');
    if sTmp <> '' then List.Items.Add(sTmp);
  end;
finally
  ini.Free;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
 i: Integer;
begin
ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
try
  for i:=0 to list.Items.Count-1 do
    ini.WriteString('path','dir' + IntToStr(i),list.Items[i]);
finally
  ini.Free;
end;
end;


Mozgan   (2006-04-26 14:05:00) [3]

Господа, подскажите тогда хотя бы, как сохранить все содержимое листбокса в ini.


Mozgan   (2006-04-26 13:55:00) [4]

Плохиш прекрати умоляю! Я лишь начинающий поэтому и трудности у меня.


Mozgan   (2006-04-26 13:54:00) [5]

Попытался переправить мозги. Пишу так:


 list.Items.Add(ini.ReadString('path','dir',list.Items[i]));


Плохиш   (2006-04-26 13:53:00) [6]


> Уважаемые мастера! третий день бьэс над этим вопросом.

Тут три варианта:
1. бьэс-я дальше.
2. Почитать основы.
3. Сменить профессию.


Mozgan   (2006-04-26 13:51:00) [7]

Как это не объявлено? Я просто экономлю место :)


var
 Form1: TForm1;
 i, k: integer;
 ini: TIniFile;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
 List.Items[i]:=ini.ReadString('path','dir',list.Items[i]);
 ini.Free;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 ini:=TIniFile.Create(extractfilepath(paramstr(0))+'setup.ini');
 for i:=0 to list.Items.Count-1 do
 ini.WriteString('path','dir',list.Items[i]);
 ini.Free;
end;


Уважаемые мастера! третий день бьэс над этим вопросом.
Подскажите пожалуйста!


Плохиш   (2006-04-26 13:50:00) [8]


> Mozgan   (26.04.06 13:48) [2]
> Если писать Add сразу же перед := то возникает ошибка.

Мда, надо было в [1] слово МЕТОД выделять. Исправляюсь


Mozgan   (2006-04-26 13:48:00) [9]

Если писать Add сразу же перед := то возникает ошибка.


Virgo_Style   (2006-04-26 13:48:00) [10]

Mozgan   (26.04.06 13:37)
List.Items.Strings[k]:=ini.ReadString('path','dir',list.Items.Strings[i]);


ошибка в необъявленной переменной k. Как минимум.
Значение по умолчанию странноватое выбрано.
Зачем по-разному сохранять и загружать - непонятно.
запись сделана неверно.
неясно, зачем вообще сохранять в ini (впрочем, хозяин - барин)


Плохиш   (2006-04-26 13:45:00) [11]


>  List.Items.Strings[k]:=ini.ReadString('path','dir',list.
> Items.Strings[i]);

Вот здесь ошибка, надо использовать метод Add


Наверх

Титульная страница Поиск, карта сайта Написать письмо