Конференция "Начинающим" » Копирование TTreeView [D7]
 
  • homeknight (02.04.12 11:32) [0]
    Здравствуйте, в делфи новичек. Стоит задача копирования 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
    Хочу просто записать в цикл копирование по индексу. Подскажите, пожалуйста, как это организовать.
  • Cobalt © (02.04.12 12:54) [1]
    пишешь рекурсивную функцию обхода дерева TTreeView
    обходишь дерево исходного контрола, и добавляешь во второе дерево новые TTreeViewItem , копируя содержимое элементов методом Assign
  • Cobalt © (02.04.12 13:12) [2]
    Ой, че-то я вообще заумничал :)
    TreeView1.Items.Assign(Form2.TtreeView2.Items);



    полная замена всех элементов дерева
  • homeknight (02.04.12 13:45) [3]
    Ясно... а если передать это дерево в локальной сети из программы-клиента на программу-сервер, то функцию обхода вставлять в передачу строки сокетом?
    Я мож че путаю... опыт работы с сокетом = 0. Буду рад помощи... А пока спасибо и за это. Ща буду тестить.
  • Cobalt © (02.04.12 14:15) [4]
    У элемента TreeView1.Items есть иные методы, как-то SaveToStream/LoadFromStream
  • homeknight (02.04.12 14:16) [5]
    Вобщем вопрос в следующем: как передать Item по сети. Какими компонентами пользоваться?
  • homeknight (02.04.12 14:17) [6]

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


    Начинаю допирать)
  • DimaBr © (02.04.12 22:27) [7]
    Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
    Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
  • homeknight (02.04.12 23:00) [8]
    Извиняюсь, не сообразил где создать топик. Вопрос с Передачей Items. Вобще, как можно сокетами передать TreeView? В сообщениях с итемами или можно как-то проще?
  • homeknight (02.04.12 23:01) [9]
    Извиняюсь, не сообразил где создать топик. Вопрос с Передачей Items. Вобще, как можно сокетами передать TreeView? В сообщениях с итемами или можно как-то проще?
  • homeknight (02.04.12 23:01) [10]
    -_- сорри за дабл
  • Cobalt © (03.04.12 09:44) [11]
    Так ты же начал допирать?
    По сети данные передавать научился?
    Сохранять TreeView в стрим?
    ну и все, передавай стрим.
  • bibip (03.04.12 11:57) [12]
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     TreeView1.SaveToFile('123');
     Form2.TreeView2.LoadFromFile('123');
    end;
  • bibip (03.04.12 12:00) [13]
    procedure TForm1.Button1Click(Sender: TObject);
    var
     st: TMemoryStream;
    begin
     st:= TMemoryStream.Create;
     TreeView1.SaveToStream(st);
     st.Position:= 0;
     Form2.TreeView2.LoadFromStream(st);
    end;

  • Юрий Зотов © (03.04.12 12:56) [14]

    > 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;

 
Конференция "Начинающим" » Копирование TTreeView [D7]
Есть новые Нет новых   [119101   +92][b:0][p:0.001]