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

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

как сохранить дополнительные данные к узлам в treeview


linuxoid ©   (2010-07-02 10:17:00) 

на форме имеется treeview со списком авто и два edita. в первом-страна-производитель, во втором-президент компании.
вопрос: где лучше сохранить вот эти данные (без БД)?

заранее благодарю.


12   (2010-07-02 14:26:00) [1]

обходить придется в ручную, или см.другую свою ветку :)


linuxoid   (2010-07-02 14:03:00) [2]

treeview1.SaveToFile('test.trv');


12   (2010-07-02 13:52:00) [3]

> узлы я сохраняю в файле 'tree.trv' для последующего открытия.


как ?


linuxoid   (2010-07-02 12:57:00) [4]

как теперь сохранить данные 'R.S' ???

узлы я сохраняю в файле 'tree.trv' для последующего открытия.


12   (2010-07-02 12:29:00) [5]

type
PRec = ^Rec;
Rec = Record
  S : string;
end;

 TForm1 = class(TForm)
   TreeView1: TTreeView;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 R : PRec;
 TreeNode : TTreeNode;
 TreeNode2 : TTreeNode;
begin
New(R);
R.S := 'Внутри';
TreeNode := TreeView1.Items.AddChildObject(nil,'asasas',R);
 New(R);
R.S := 'Внутри2';
TreeNode2 := TreeView1.Items.AddChildObject(TreeNode,'sdsfsff',R);
end;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
 ShowMessage(Rec(Node.Data^).S);
end;


linuxoid   (2010-07-02 12:24:00) [6]

опишу подробно на примере.

имеется две формы mainform и addforml.

mainform содержит treeview, edit1(марка авто), edit2(страна), edit3(президент) и button1.

addform содержит edit1(марка авто), edit2(страна), edit3(президент) и button1 по нажатию которого данные с едитов должны добавиться.

на mainform в treeview должны хранятся марки  авто по нажатии на них (treeview.onchange) в edit1 должен отобразится марка авто, в edit2-страна, edit3-президент (которые мы ранее добавили).

узлы treeview(марки авто) добавляю и сохраняю в файле 'avto,trv'.

вопрос: как сохранять данные (страна, президент) и отобразить их?


linuxoid   (2010-07-02 12:08:00) [7]

теперь не могу понять с " R.S := 'Внутри';"???

как его сохранить и отобразить?


Ega23   (2010-07-02 11:52:00) [8]


> 12 ©   (02.07.10 10:43) [3]


Зачем так сложно? Создай стринглист, строки храни как Name-Value, а в Node.Data прописывай ItemIndex

Node.Data := Pointer(ItemIndex);

ItemIndex := Integer(Node.Data);

И всё.


12   (2010-07-02 11:48:00) [9]

ну да, вернее так
PRec = ^Rec;
R : PRec;


Ega23   (2010-07-02 11:41:00) [10]


> не получается чето.


Это Windows, сынок.


linuxoid   (2010-07-02 11:29:00) [11]

не получается чето. New(R)???


12   (2010-07-02 10:43:00) [12]

Rec = Record
   S : string;
 end;

 R : Rec;

 New(R);
 R.S := 'Внутри';

    NewNode:=TreeView.Items.AddChildObject(CurentNode, 'Для вида', R);


linuxoid   (2010-07-02 10:32:00) [13]

как это реализовать?


Ega23   (2010-07-02 10:30:00) [14]

Node.Data


Наверх

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