{
Treeview1.SaveToFile('...') doesn't store images.
Instead, use the code below.
}{
Treeview1.SaveToFile('...') speichert Bitmaps im Treeview nicht.
Um auch die Bitmaps eines Treeviews zu speichern,
benutze untenstehenden Code.
}// Save procedure TForm1.Button1Click(Sender: TObject);
var
F: TFileStream;
begin
F := TFileStream.Create('c:\TreeView.txt', fmCreate or fmShareCompat);
try
F.WriteComponent(TreeView1);
finally
F.Free;
end;
end;
// Load procedure TForm1.Button2Click(Sender: TObject);
var
F: TFileStream;
begin
F := TFileStream.Create('c:\TreeView.txt', fmOpenRead or fmShareDenyWrite);
try
F.ReadComponent(TreeView1);
finally
F.Free;
end;
end;
Передача содержимого TTreeView
Кнопка1Click
Процедура Button1Click сохраняет содержимое компонента TreeView1 в файле с именем "c:\TreeView.txt". Она использует объект TFileStream для записи дерева в файл.
Переменная F объявлена как объект TFileStream.
Новый объект TFileStream создается с помощью метода Create, указывая имя файла и режим (fmCreate или fmShareCompat). Это позволяет создать файл, если он не существует, и также предотвращает изменение файла другими процессами в то время, когда мы записываем в него.
Метод WriteComponent используется для записи компонента TreeView1 в файл. Этот метод сериализует свойства дерева и его дочерние контролы в поток данных.
Наконец, метод Free вызывается для освобождения памяти, выделенной объектом TFileStream.
Загрузка TTreeView
Процедура Button2Click загружает содержимое файла "c:\TreeView.txt" обратно в компонент TreeView1. Она использует объект TFileStream для чтения данных из файла и десериализации их в дерево.
Переменная F объявлена как объект TFileStream.
Новый объект TFileStream создается с помощью метода Create, указывая имя файла и режим (fmOpenRead или fmShareDenyWrite). Это позволяет прочитать из существующего файла, и предотвращает изменение файла другими процессами в то время, когда мы читаем.
Метод ReadComponent используется для десериализации данных из файла в компонент TreeView1. Этот метод чтит сериализованные данные из потока и пополняет дерево своими оригинальными свойствами и дочерними контроллами.
Наконец, метод Free вызывается для освобождения памяти, выделенной объектом TFileStream.
Замечания
Код использует методы WriteComponent и ReadComponent для сериализации и десериализации компонента дерева. Это позволяет хранить и восстанавливать полный状态 дерева, включая его структуру, свойства и дочерние контроллы.
Имя файла "c:\TreeView.txt" жестко закодировано в примере, но вы можете изменить это на более динамический подход (например, используя файловое имя, введенное пользователем или настройку конфигурации).
Если вы работаете с изображениями в своем дереве, помните, что эти не будут храниться или загружаться с помощью этого кода. Вам нужно будет реализовать дополнительную логику для хранения и загрузки изображений.
В статье описывается способ сохранения и загрузки изображений в компоненте TTreeView Delphi, используя процедуры SaveToFile и ReadComponent.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.