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

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

Копирование TTreeView [D7]


homeknight ©   (2012-04-02 11:32:00) 

Здравствуйте, в делфи новичек. Стоит задача копирования Items строк из одного TTreeView в другой.
Код типа
procedure TForm1.Button1Click(Sender: TObject);
var itindex:integer;
begin
itindex:=0;
TreeView1.Items.Item[itindex]:=Form2.TtreeView2.Items.Item[itindex];
end;

выдал ошибку  Unit1.pas(34): Cannot assign to a read-only property
Хочу просто записать в цикл копирование по индексу. Подскажите, пожалуйста, как это организовать.


Юрий Зотов   (2012-04-03 12:56:00) [1]


> bibip   (03.04.12 12:00) [13]

procedure TForm1.Button1Click(Sender: TObject);
var
 st: TMemoryStream;
begin
 st:= TMemoryStream.Create;
  try
   TreeView1.SaveToStream(st);
   st.Position:= 0;
   Form2.TreeView2.LoadFromStream(st);
  finally
   st.Free;
 end;

end;


bibip   (2012-04-03 12:00:00) [2]

procedure TForm1.Button1Click(Sender: TObject);
var
 st: TMemoryStream;
begin
 st:= TMemoryStream.Create;
 TreeView1.SaveToStream(st);
 st.Position:= 0;
 Form2.TreeView2.LoadFromStream(st);
end;


bibip   (2012-04-03 11:57:00) [3]

procedure TForm1.Button1Click(Sender: TObject);
begin
 TreeView1.SaveToFile('123');
 Form2.TreeView2.LoadFromFile('123');
end;


Cobalt   (2012-04-03 09:44:00) [4]

Так ты же начал допирать?
По сети данные передавать научился?
Сохранять TreeView в стрим?
ну и все, передавай стрим.


homeknight   (2012-04-02 23:01:00) [5]

Извиняюсь, не сообразил где создать топик. Вопрос с Передачей Items. Вобще, как можно сокетами передать TreeView? В сообщениях с итемами или можно как-то проще?


homeknight   (2012-04-02 23:01:00) [6]

-_- сорри за дабл


homeknight   (2012-04-02 23:00:00) [7]

Извиняюсь, не сообразил где создать топик. Вопрос с Передачей Items. Вобще, как можно сокетами передать TreeView? В сообщениях с итемами или можно как-то проще?


DimaBr   (2012-04-02 22:27:00) [8]

Внимание!Здесьобсуждаются вопросы, связанные с разработкойкомпонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поискуи использованиюготовых компонентов, редакторов или экспертов являются нарушениемтематики и могут быть удалены.


homeknight   (2012-04-02 14:17:00) [9]


> Cobalt ©   (02.04.12 14:15) [4]
> У элемента TreeView1.Items есть иные методы, как-то SaveToStream/LoadFromStream


Начинаю допирать)


homeknight   (2012-04-02 14:16:00) [10]

Вобщем вопрос в следующем: как передать Item по сети. Какими компонентами пользоваться?


Cobalt   (2012-04-02 14:15:00) [11]

У элемента TreeView1.Items есть иные методы, как-то SaveToStream/LoadFromStream


homeknight   (2012-04-02 13:45:00) [12]

Ясно... а если передать это дерево в локальной сети из программы-клиента на программу-сервер, то функцию обхода вставлять в передачу строки сокетом?
Я мож че путаю... опыт работы с сокетом = 0. Буду рад помощи... А пока спасибо и за это. Ща буду тестить.


Cobalt   (2012-04-02 13:12:00) [13]

Ой, че-то я вообще заумничал :)
TreeView1.Items.Assign(Form2.TtreeView2.Items);

полная замена всех элементов дерева


Cobalt   (2012-04-02 12:54:00) [14]

пишешь рекурсивную функцию обхода дерева TTreeView
обходишь дерево исходного контрола, и добавляешь во второе дерево новые TTreeViewItem , копируя содержимое элементов методом Assign


Наверх

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