Форум: "Начинающим";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
ВнизTreeview, как хранить? Найти похожие ветки
← →
Buzzik © (2011-06-04 17:59) [0]Простите за тупой вопрос.
Не могу разобраться с Treeview.
Нет ли у TreeView1.Items.Item[0]. какого либо невидимого изменяемого поля, чтобы записать туда что это за нод, и потом работать с ним?
← →
Юрий Зотов © (2011-06-04 18:13) [1]Есть свойство Data. Это указатель. Можно создать любой блок любых данных и его адрес занести в это свойство. Тогда данные будут относиться именно к этому узлу дерева.
Только имейте в виду, что созданный блок данных сам по себе не уничтожится - поэтому, когда он станет уже не нужен, его надо убить ручками.
← →
Virgo_Style © (2011-06-04 18:13) [2].Data, если мне склероз не изменяет
← →
Buzzik © (2011-06-04 18:38) [3]Спасибо.
Простите за наглость, а не завалялся ли у кого маленький примерчик кода?
← →
Andy BitOff © (2011-06-04 18:47) [4]> Buzzik © (04.06.11 18:38) [3]
> Спасибо.
> Простите за наглость, а не завалялся ли у кого маленький
> примерчик кода?
http://tinyurl.com/6ezbpt7
← →
VirEx © (2011-06-07 07:31) [5]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.Items.Clear;
TreeView1.LoadFromFile("c:\111.txt");
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.SaveToFile("c:\111.txt");
end;
procedure SaveContainer(Component: TComponent; FileName: string);
var
FileStream: TFileStream;
MemStream: TMemoryStream;
begin
FileStream := TFileStream.Create(FileName, fmCreate);
MemStream := TMemoryStream.Create;
try
MemStream.WriteComponent(Component);
MemStream.Position := 0;
ObjectBinaryToText(MemStream, FileStream)
finally
MemStream.Free;
FileStream.Free;
end;
end;
procedure LoadContainer(Component: TComponent; FileName: string);
var
FileStream: TFileStream;
MemStream: TMemoryStream;
begin
FileStream := TFileStream.Create(FileName, 0);
MemStream := TMemoryStream.Create;
try
ObjectTextToBinary(FileStream, MemStream);
MemStream.Position := 0;
MemStream.ReadComponent(Component);
finally
MemStream.Free;
FileStream.Free;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SaveContainer(TreeView1,"c:\222.txt")
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
LoadContainer(TreeView1,"c:\222.txt");
end;
end.
при сохранении "встроенным" методом TreeView1.SaveToFile("c:\111.txt");
будет чтото вроде:asdasdasd
ddddd
aaaa
dddd
asdasdasd
при сохранении методом SaveContainer(TreeView1,"c:\222.txt") будет примерно такое:object TreeView1: TTreeView
Left = 48
Top = 24
Width = 321
Height = 329
Indent = 19
TabOrder = 0
Items.Data = {
02000000220000000000000000000000FFFFFFFFFFFFFFFF0000000001000000
096173646173646173641E0000000000000000000000FFFFFFFFFFFFFFFF0000
0000020000000564646464641D0000000000000000000000FFFFFFFFFFFFFFFF
000000000000000004616161611D0000000000000000000000FFFFFFFFFFFFFF
FF00000000000000000464646464220000000000000000000000FFFFFFFFFFFF
FFFF000000000000000009617364617364617364}
end
если нужно сохранять объекты помещенные в Data, они должны быть предками TComponent и в них нужно перекрывать методыprocedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
procedure SetParentComponent(Value: TComponent); override;
интересно - погуглите
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c