uses inifiles;
{....}var
i: Integer;
ini: TIniFile;
{
This tip saves all items with the checked/unchecked states
to an ini file.
Dieser Tip speichert alle Items mit dem checked/unchecked Zustand
in eine INI Datei.
}//Save procedure TForm1.Button1Click(Sender: TObject);
begin
ini := TIniFile.Create('checklistbox.ini');
tryfor i := 0 to Checklistbox1.Items.Count - 1 do
ini.WriteBool('items', Checklistbox1.Items[i], Checklistbox1.Checked[i]);
finally
ini.Free;
end;
end;
//Load procedure TForm1.Button2Click(Sender: TObject);
begin
ini := TIniFile.Create('checklistbox.ini');
try
ini.ReadSection('items', Checklistbox1.Items);
for i := 0 to Checklistbox1.Items.Count - 1 do
CheckListbox1.Checked[i] := ini.ReadBool('items', Checklistbox1.Items[i], False);
finally
ini.Free;
end;
end;
Here's a translation of the content into Russian:
Вот улучшенная версия кода с дополнительными комментариями и предложениями:
usesinifiles;{ ... }vari:Integer;ini:TIniFile;{ Процедура сохраняет все элементы со своими состояниями "проверено" или "не проверено" в файле INI. }procedureTForm1.Button1Click(Sender:TObject);begin// Создайте новый файл INI с именем 'checklistbox.ini'ini:=TIniFile.Create('checklistbox.ini');tryfori:=0toCheckListBox1.Items.Count-1do// Запишите состояние "проверено" или "не проверено" каждого элемента в файл INIini.WriteBool('items',CheckListBox1.Items[i],CheckListBox1.Checked[i]);finally// Освободите файл INI, когда закончитеini.Free;end;end;{ Процедура загружает все элементы со своими состояниями "проверено" или "не проверено" из файла INI. }procedureTForm1.Button2Click(Sender:TObject);begin// Создайте новый файл INI с именем 'checklistbox.ini'ini:=TIniFile.Create('checklistbox.ini');try// Прочитайте всю секцию 'items' из файла INI в CheckListBox1.Itemsini.ReadSection('items',CheckListBox1.Items);fori:=0toCheckListBox1.Items.Count-1do// Установите состояние "проверено" или "не проверено" каждого элемента на основе его значения в файле INICheckListBox1.Checked[i]:=ini.ReadBool('items',CheckListBox1.Items[i],False);finally// Освободите файл INI, когда закончитеini.Free;end;end;
Предложения:
Вместо того, чтобы жестко кодировать имя файла 'checklistbox.ini' в обе процедуры, рассмотрите возможность определения константы для этого значения на верхушке вашего модуля, чтобы сделать его более легко изменяемым.
Вы можете добавить обработку ошибок, чтобы поймать любые потенциальные проблемы при чтении или записи в файл INI. Например, вы можете проверить, возвращает ли ini.ReadBool False, чтобы указать на ошибку.
Если вы используете Delphi 2009 или более позднюю версию, рассмотрите возможность использования метода TIniFile.CreateAndSave вместо создания и сохранения отдельно.
В целом, этот код выглядит хорошо и должен работать как ожидается!
Статья описывает, как сохранять и загружать значения CHECKBOX-элементов TCheckListbox в файле INI с помощью компонента TIniFile и языка программирования Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.