Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Сохранить и загрузить TTreeView

Delphi , Компоненты и Классы , TTreeView

Сохранить и загрузить TTreeView

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  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




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TTreeView ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 09:09:59/0.0058531761169434/0