На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> Как добавить дочерний элемент threeview?
    Мне нужно добавить дочерний элемент в список. Перепробовала много вариантов.
    Вот простой код (потом я собираюсь добавлять элементы через цикл).
    ExpandedWrap disabled
      //РОДИТЕЛЬСКИЕ ЭЛЕМЕНТЫ
      TreeView1.Items.Add(Node, 'Data[1]');
        TreeView1.Items.Add(Node, 'Data[2]');
        TreeView1.Items.Add(Node, 'Data[3]');
        TreeView1.Items.Add(Node, 'Data[4]');
        TreeView1.Items.Add(Node, 'Data[5]');
        TreeView1.Items.Add(Node, 'Data[6]');
       
         if TreeView1.Items.Item[0].Level = 0 then
         begin
           item := TreeView1.Items.Item[0];
           TreeView1.Items.AddChild(item, 'Item1');
           TreeView1.Items.AddChild(item, 'Item2');
         end;
       
         if TreeView1.Items.Item[1].Level = 0 then
         begin
           item := TreeView1.Items.Item[1];
           TreeView1.Items.AddChild(item, 'Item1');
           TreeView1.Items.AddChild(item, 'Item2');
         end;


    Нужно добавлять в первый и второй родительский элемент, но добавляется почему-то только первый, если убрать первое условие, где проверка осуществляется на уровень первого элемента, то добавляется во второй родительский элемент, стоит вернуть первое условие, то добавление происходит в первый родительский элемент. Как сделать добавление в первое и второй родительский элемент? Потом я буду это выводить в цикле. Также мне важно знать как добавить в дочерний элементы (созданные в родительских элементах) еще одни дочернии элементы. Пример на картинке.

    Прикреплённый файлПрикреплённый файлscreen4.jpg (11,22 Кбайт, скачиваний: 9)
    Сообщение отредактировано: Katerina1993 -
      ExpandedWrap disabled
        procedure TForm1.Button1Click(Sender: TObject);
        var
          Node: TTreeNode;
        begin
          Node := TreeView1.Items.Add(nil, 'Data[1]');
          TreeView1.Items.AddChild(Node, 'Item1'); // Data[1] -> Item1
          Node := TreeView1.Items.AddChild(Node, 'Item2'); // Data[1] -> Item2
          TreeView1.Items.AddChild(Node, 'Item1'); // Data[2] -> Item2 -> Item1
          TreeView1.Items.AddChild(Node, 'Item2'); // Data[2] -> Item2 -> Item2
          TreeView1.Items.AddChild(Node, 'Item3'); // Data[2] -> Item2 -> Item3
          TreeView1.Items.AddChild(Node, 'Item4'); // Data[2] -> Item2 -> Item4
          Node := TreeView1.Items.Add(nil, 'Data[2]');
          TreeView1.Items.AddChild(Node, 'Item1'); // Data[2] -> Item1
          TreeView1.Items.AddChild(Node, 'Item2'); // Data[2] -> Item2
          TreeView1.Items.Add(nil, 'Data[3]');
          TreeView1.Items.AddChild(Node, 'Item3'); // Data[2] -> Item3
          TreeView1.Items.AddChild(Node, 'Item4'); // Data[2] -> Item4
          Node := TreeView1.Items.Add(nil, 'Data[4]');
          TreeView1.Items.Add(nil, 'Data[5]');
          TreeView1.Items.AddChild(Node, 'Item1'); // Data[4] -> Item1
          TreeView1.Items.AddChild(Node, 'Item2'); // Data[4] -> Item2
          TreeView1.Items.Add(nil, 'Data[6]');
          TreeView1.Items.AddChild(Node, 'Item3'); // Data[4] -> Item3
          TreeView1.Items.AddChild(Node, 'Item4'); // Data[4] -> Item4
        end;
      Вот так получится то, что вам надо. Вот так выглядит.
      Прикреплённый файлПрикреплённый файлTTreeView.png (20,74 Кбайт, скачиваний: 59)
      Сообщение отредактировано: macomics -
        macomics, спасибо после вашего примера я сразу поняла как выводить через цикл.
          Вот так можно перечислить Node одного уровня без проверки Level
          ExpandedWrap disabled
            Node := Node.GetNextChild(Node);
          При инициализации Node как
          ExpandedWrap disabled
            Node := TreeView1.Itemsю.GetFirstNode;
            repeat
            // Действия над текущим Node
              Node := Node.GetNextChild(Node);
            until Node = nil;
          будут перечислены элементы Data[1], Data[2], Data[3], Data[4], Data[5] Data[6].
            Как поменять данные в дереве изменив только один Index. Допустим у меня данные однотипные и структура выглядит как массив, соответственно в каждом родителе содержатся одинаковы набор данных. Мне нужно изменить скажем во втором родителе, один текст. Я пыталась сделать это вот так.
            ExpandedWrap disabled
              TreeView1.Items[1].Item[2].Item[0].Text:='ok';
               //Где Items[1] - массив Data1
               //Item[2] - массив Status
               //Item[0] - текст

            В итоге я получаю ошибку.
            Цитата
            List Index out of bounds (1)

            Как мне изменить данные, поменяв только один Index, допустим вот здесь.

            Прикреплённый файлПрикреплённый файлscreen5.jpg (20,93 Кбайт, скачиваний: 56)
              Это все потому, что вы обращаетесь со TreeView как с массивом. Хотя элементы в Items и индексируются линейно, но они организованы в древовидную структуру и не привязаны к индексам в Items строго. Для работы с элементами описанной мной ранее структуры попробуйте сделать так.
              ExpandedWrap disabled
                Node := TreeView1.Items.GetFirstNode; // Data[1]
                //                ^-- В этом Items элементы индексируются линейно вне зависимости от уровня вложенности. GetFirstNode вернет старший корневой элемент.
                Caption := Node.Item[1].Item[2].Text; // Data[1] -> Item2 -> Item3

              А вот элементы в объекте Node.Item уже представляют из себя массив дочерних элементов без вложений.
              Сообщение отредактировано: macomics -
                У Node нет свойства Items (список на картинке).
                Прикреплённый файлПрикреплённый файлscreen6.jpg (14,65 Кбайт, скачиваний: 52)
                  ExpandedWrap disabled
                    TreeView1.TopItem.getNextSibling.Item[2].Item[0].text:='ok';
                    Цитата
                    TreeView1.TopItem.getNextSibling.Item[2].Item[0].text:='ok';

                    Поменять параметры "индекса" не получается при попытке выдает ошибку:
                    Цитата
                    List Index out of bounds (1)

                    Это фиксированные параметры индекса, которые не меняются. Моя цель, чтобы в таймере каждую секунду проходился про древовидному списку и менял значение на ok, разумеется через таймер. Количество данных практически одинаковое.
                    Дерево на картинке:
                    Прикреплённый файлПрикреплённый файлscreen7.jpg (33,89 Кбайт, скачиваний: 61)
                    Сообщение отредактировано: Katerina1993 -
                      Да да. В браузере набирал. Лишняя буква s в конце у Node.Item. Возможно в Lazarus свойства чуть отличаются. Как вы определяете Node? У меня вот так вот работает
                      ExpandedWrap disabled
                        unit unit1;
                         
                        {$mode objfpc}{$H+}
                         
                        interface
                         
                        uses
                          Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
                          ExtCtrls;
                         
                        type
                         
                          { TForm1 }
                         
                          TForm1 = class(TForm)
                            Timer1: TTimer;
                            TreeView1: TTreeView;
                            procedure FormCreate(Sender: TObject);
                            procedure Timer1Timer(Sender: TObject);
                          private
                         
                          public
                            Node: TTreeNode;
                          end;
                         
                        var
                          Form1: TForm1;
                         
                        implementation
                         
                        { TForm1 }
                         
                        procedure TForm1.FormCreate(Sender: TObject);
                        var
                          i: LongInt;
                        begin
                          with TreeView1.Items do begin
                            Node := Add(nil, 'Data[1]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := Add(nil, 'Data[2]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := Add(nil, 'Data[3]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := Add(nil, 'Data[4]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := Add(nil, 'Data[5]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := Add(nil, 'Data[6]');
                            AddChild(Node, 'Title1');
                            AddChild(Node, 'Text1');
                            Node := AddChild(Node, 'Status');
                            AddChild(Node, 'wait');
                         
                            Node := GetFirstNode;
                          end;
                          TreeView1.FullExpand;
                        end;
                         
                        procedure TForm1.Timer1Timer(Sender: TObject);
                        begin
                          Node.Items[2].Items[0].Text := 'ok';
                          Node := Node.GetNextChild(Node);
                          if Node = nil then Timer1.Enabled := False;
                        end;
                         
                        initialization
                          {$I unit3.lrs}
                         
                        end.

                      Прикреплённый файлПрикреплённый файлTreeView1.png (16,96 Кбайт, скачиваний: 48)
                      Сообщение отредактировано: macomics -
                        macomics, ваш пример заработал, Node я определяю также:
                        Цитата
                        Node: TTreeNode;

                        Единственное отличие свойство Items нужно заменить на Item. Вот так:
                        Цитата
                        Node.Item[2].Item[0].Text := 'ok';

                        Так как у меня не Lazarus, а Delphi7.
                        Сообщение отредактировано: Katerina1993 -
                          Действительно отличаются. Откопал свою старую книгу, по которой начинал изучать Delphi 7 и там у TTreeNode описан массив Item, а в Lazarus под Linux Items. Но это не страшно.
                          Цитата Katerina1993 @
                          Цитата
                          Node.Item[2].Item[0].Text := 'ok';

                          Так как у меня не Lazarus, а Delphi7.

                          Вот поэтому то я и упомянул Lazarus. Я знаю, что у вас Delphi 7.
                          Сообщение отредактировано: macomics -
                            Создала еще вложенный дочерний элемент под название img, в нем будет содержаться данные о некоторых картинках, ключевое слово big(будет еще small, т.е. два варианта). Количество big в Data[0..9] означает количество изображений. Пример на картинке.
                            Прикреплённый файлПрикреплённый файлscreen8.jpg (32,53 Кбайт, скачиваний: 58)
                            У big есть два параметра type1 и wait. Wait – это что-то вроде status, у родительского элемента data. Здесь он будет принимать два параметра wait и ok. Мне нужно запустить дополнительные цикл, который будет проходить по всем изображением внутри всех родительских элементов Data[0..9] и ставить ok. Только это процедура должна проходить соблюдая чередность, сначала везде проставиться ok у картинок Data[0], закончив устанавливать параметр у картинок Data[0], переходить к Data[1] и т.д. Интервал прохождения одна секунда, если 5 изображений то время затрачено 5 секунд.

                            На счет статуса (status) Data, он будет принимать три параметра ok, wait и current. Большинство из них параметр wait, как на скриншоте.
                            Прикреплённый файлПрикреплённый файлscreen9.jpg (36,86 Кбайт, скачиваний: 53)
                            После завершения прохода одного из родительского элемента ему автоматически присваивается status ok.

                            При переходе на следующий уровень Data[1] или Data[2] им присваивается статус– current (текущий), он может быть один в дереве, пока идет процесс текущего родительского объекта. Это можно увидеть на картинке ниже.
                            Прикреплённый файлПрикреплённый файлscreen10.jpg (36,69 Кбайт, скачиваний: 49)
                            После прохождения по картинкам, статус меняется на “ok”, т.е. процесс завершен. Разумеется само дерево было сделано для наглядности, в основном все переменные я собираюсь хранить в массиве (record). Как мне примерно сделать такие проходы много-уровневые с изменением статуса?
                            Вот мой код:

                            ExpandedWrap disabled
                              unit Unit1;
                               
                              interface
                               
                              uses
                                Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                                Dialogs, StdCtrls, ComCtrls, ExtCtrls;
                               
                              type
                                TForm1 = class(TForm)
                                  Timer1: TTimer;
                                  TreeView1: TTreeView;
                                  Label1: TLabel;
                                
                                  procedure FormShow(Sender: TObject);
                                  procedure FormCreate(Sender: TObject);
                                  procedure Timer1Timer(Sender: TObject);
                                private
                                  { Private declarations }
                                public
                                  { Public declarations }
                                  vetka,text,data1,item1,Node,Node3: TTreeNode;
                                end;
                               
                               
                                TText=record
                                    description: String;
                                end;
                               
                                TItem=record
                                    text: TText;
                                end;
                                TSmall=record
                                   status:String;
                                   width:Integer;
                                   height:Integer;
                                   type1:String;
                                end;
                                TBig=record
                                   status:String;
                                   width:Integer;
                                   height:Integer;
                                   type1:String;
                                end;
                                TImage=record
                                    big:TBig;
                                    small:TSmall;
                                end;
                                TIndex=record
                                       title : String;
                                       text: String;
                                       status : String;
                                       item:TItem;
                                       img:array of TImage;
                                    end;
                                type
                                  TData = array of TIndex;
                               
                              var
                                Form1: TForm1;
                                Data: TData;
                               
                                st: String;
                                t:Integer = 0;
                                Index:Integer = 0;
                                MaxSet:Integer=0;
                              implementation
                               
                              {$R *.dfm}
                               
                               
                              //Пример записи в массив
                              procedure TForm1.FormShow(Sender: TObject);
                              var i,j: Integer;
                              vetka,text,data1,item1,Node,Node1,Node2: TTreeNode;
                              begin
                                for I := Low(Data) to High(Data) do
                                begin
                                   data1:=TreeView1.Items.Add(nil,'Data['+IntToStr(i)+']');
                               
                                   Node:=TreeView1.Items.AddChild(data1,'Title'+IntToStr(i+1));
                                   Node:=TreeView1.Items.AddChild(Node,Data[i].title);
                               
                               
                                   Node:=TreeView1.Items.AddChild(data1,'Text'+IntToStr(i+1));
                                   Node:=TreeView1.Items.AddChild(Node,Data[i].text);
                               
                                   Node:=TreeView1.Items.AddChild(data1,'Status'+IntToStr(i+1));
                                   Node:=TreeView1.Items.AddChild(Node,Data[i].status);
                               
                                   Node:=TreeView1.Items.AddChild(data1,'item0');
                                   Node:=TreeView1.Items.AddChild(Node,'Text');
                                   Node:=TreeView1.Items.AddChild(Node, 'Description');
                                   Node:=TreeView1.Items.AddChild(Node,Data[i].item.text.description);
                               
                               
                                    Node1:=TreeView1.Items.AddChild(data1,'img');
                               
                                   for J := Low(Data[i].img) to High(Data[i].img) do
                                   begin
                                     Node2:=TreeView1.Items.AddChild(Node1,'big');
                                     Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.status);
                                     Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.type1);
                                   end;
                               
                                end;
                                Node3 := TreeView1.Items.GetFirstNode;
                                
                              end;
                               
                              procedure TForm1.FormCreate(Sender: TObject);
                              begin
                              //В ДОКУМЕНТЕ МАССИВ СОСТОИТ ИЗ 10 ЭЛЕМЕНТОВ, устанавливаем SetLength.
                              SetLength(Data,9);
                               
                              //Резервируем место для нового массива где будут хранится дополнительные данные
                              //ДОПОЛНИТЕЛЬНЫЕ ДАННЫЕ ПОМЕЧЕНЫ КОММЕНТАРИИ НИЖЕ
                              SetLength(Data[0].img,5);
                              SetLength(Data[1].img,3);
                              SetLength(Data[2].img,4);
                              SetLength(Data[3].img,2);
                              SetLength(Data[4].img,7);
                              SetLength(Data[5].img,3);
                              SetLength(Data[6].img,4);
                              SetLength(Data[7].img,8);
                              SetLength(Data[8].img,3);
                              SetLength(Data[9].img,4);
                               
                               
                              Data[0].title:='Название';
                              Data[0].text:='Мой текст';
                              Data[0].status:='current';
                               
                              Data[0].item.text.description:='Описание 1';
                              //Data[0] --> img[0..4] ********************************************************
                              Data[0].img[0].big.type1:='test1';
                              Data[0].img[1].big.type1:='test2';
                              Data[0].img[2].big.type1:='test3';
                              Data[0].img[3].big.type1:='test4';
                              Data[0].img[4].big.type1:='test5';
                               
                              Data[0].img[0].big.status:='wait';
                              Data[0].img[1].big.status:='wait';
                              Data[0].img[2].big.status:='wait';
                              Data[0].img[3].big.status:='wait';
                              Data[0].img[4].big.status:='wait';
                              //END DATA[0] --> img[0..4]*****************************************************
                              Data[1].title:='Название 1';
                              Data[1].text:='Мой текст 1';
                              Data[1].status:='wait';
                              Data[1].item.text.description:='Описание 2';
                              //Data[1] --> img[0..2] ********************************************************
                              Data[1].img[0].big.type1:='test1';
                              Data[1].img[1].big.type1:='test2';
                              Data[1].img[2].big.type1:='test3';
                               
                               
                              Data[1].img[0].big.status:='wait';
                              Data[1].img[1].big.status:='wait';
                              Data[1].img[2].big.status:='wait';
                              //END DATA[1] --> img[0..2] ****************************************************
                               
                               
                              Data[2].title:='Название 2';
                              Data[2].text:='Мой текст 2';
                              Data[2].status:='wait';
                              Data[2].item.text.description:='Описание 3';
                              //Data[2] --> img[0..3] ********************************************************
                              Data[2].img[0].big.type1:='test1';
                              Data[2].img[1].big.type1:='test2';
                              Data[2].img[2].big.type1:='test3';
                              Data[2].img[3].big.type1:='test4';
                               
                              Data[2].img[0].big.status:='wait';
                              Data[2].img[1].big.status:='wait';
                              Data[2].img[2].big.status:='wait';
                              Data[2].img[3].big.status:='wait';
                              //END DATA[2] --> img[0..3] ****************************************************
                              Data[3].title:='Название 3';
                              Data[3].text:='Мой текст 3';
                              Data[3].status:='wait';
                              Data[3].item.text.description:='Описание 4';
                               
                               
                              //Data[3] --> img[0..1] ********************************************************
                              Data[3].img[0].big.type1:='test1';
                              Data[3].img[1].big.type1:='test2';
                               
                               
                              Data[3].img[0].big.status:='wait';
                              Data[3].img[1].big.status:='wait';
                              //END DATA[3] --> img[0..1] ****************************************************
                               
                              Data[4].title:='Название 4';
                              Data[4].text:='Мой текст 4';
                              Data[4].status:='wait';
                              Data[4].item.text.description:='Описание 5';
                              //Data[4] --> img[0..6] ********************************************************
                              Data[4].img[0].big.type1:='test1';
                              Data[4].img[1].big.type1:='test2';
                              Data[4].img[2].big.type1:='test3';
                              Data[4].img[3].big.type1:='test4';
                              Data[4].img[4].big.type1:='test5';
                              Data[4].img[5].big.type1:='test6';
                              Data[4].img[6].big.type1:='test7';
                               
                               
                              Data[4].img[0].big.status:='wait';
                              Data[4].img[1].big.status:='wait';
                              Data[4].img[2].big.status:='wait';
                              Data[4].img[3].big.status:='wait';
                              Data[4].img[4].big.status:='wait';
                              Data[4].img[5].big.status:='wait';
                              Data[4].img[6].big.status:='wait';
                              //END DATA[4] --> img[0..6] ****************************************************
                               
                              Data[5].title:='Название 5';
                              Data[5].text:='Мой текст 5';
                              Data[5].status:='wait';
                              Data[5].item.text.description:='Описание 6';
                              //Data[5] --> img[0..2] ********************************************************
                              Data[5].img[0].big.type1:='test1';
                              Data[5].img[1].big.type1:='test2';
                              Data[5].img[2].big.type1:='test3';
                               
                              Data[5].img[0].big.status:='wait';
                              Data[5].img[1].big.status:='wait';
                              Data[5].img[2].big.status:='wait';
                              //END DATA[5] --> img[0..2] ****************************************************
                               
                              Data[6].title:='Название 6';
                              Data[6].text:='Мой текст 6';
                              Data[6].status:='wait';
                              Data[6].item.text.description:='Описание 7';
                              //Data[6] --> img[0..3] ********************************************************
                              Data[6].img[0].big.type1:='test1';
                              Data[6].img[1].big.type1:='test2';
                              Data[6].img[2].big.type1:='test3';
                              Data[6].img[3].big.type1:='test4';
                               
                               
                              Data[6].img[0].big.status:='wait';
                              Data[6].img[1].big.status:='wait';
                              Data[6].img[2].big.status:='wait';
                              Data[6].img[3].big.status:='wait';
                              //END DATA[6] --> img[0..3] ****************************************************
                               
                              Data[7].title:='Название 7';
                              Data[7].text:='Мой текст 7';
                              Data[7].status:='wait';
                              Data[7].item.text.description:='Описание 8';
                               
                              //Data[7] --> img[0..7] ********************************************************
                              Data[7].img[0].big.type1:='test1';
                              Data[7].img[1].big.type1:='test1';
                              Data[7].img[2].big.type1:='test1';
                              Data[7].img[3].big.type1:='test1';
                              Data[7].img[4].big.type1:='test1';
                              Data[7].img[5].big.type1:='test1';
                              Data[7].img[6].big.type1:='test1';
                              Data[7].img[7].big.type1:='test1';
                               
                               
                               
                              Data[7].img[0].big.status:='wait';
                              Data[7].img[1].big.status:='wait';
                              Data[7].img[2].big.status:='wait';
                              Data[7].img[3].big.status:='wait';
                              Data[7].img[4].big.status:='wait';
                              Data[7].img[5].big.status:='wait';
                              Data[7].img[6].big.status:='wait';
                              Data[7].img[7].big.status:='wait';
                              //END DATA[7] --> img[0..7] ****************************************************
                               
                              Data[8].title:='Название 8';
                              Data[8].text:='Мой текст 8';
                              Data[8].status:='wait';
                              Data[8].item.text.description:='Описание 9';
                               
                              //Data[8] --> img[0..2] ********************************************************
                              Data[8].img[0].big.type1:='test1';
                              Data[8].img[1].big.type1:='test1';
                              Data[8].img[2].big.type1:='test1';
                               
                               
                              Data[8].img[0].big.status:='wait';
                              Data[8].img[1].big.status:='wait';
                              Data[8].img[2].big.status:='wait';
                               
                              MaxSet:=5;
                               
                              Label1.Caption:='Макс '+IntToStr(MaxSet)+' сек: '+IntToStr(t);
                               
                              //END DATA[8] --> img[0..2] ****************************************************
                               
                              //Data[9].img[0].big.type1:='test1';
                              //Data[9].img[1].big.type1:='test1';
                              //Data[9].img[2].big.type1:='test1';
                              //Data[9].img[3].big.type1:='test1';
                               
                              //Data[9].img[0].big.status:='wait';
                              //Data[9].img[1].big.status:='wait';
                              //Data[9].img[2].big.status:='wait';
                              //Data[9].img[3].big.status:='wait';
                              //********************************************************
                              end;
                               
                              procedure TForm1.Timer1Timer(Sender: TObject);
                              begin
                              inc(t);
                              if t>MaxSet then
                              begin
                                inc(Index);
                                t:=1;
                                Node3.Item[2].Item[0].text:='ok';
                                Node3 := Node3.GetNextChild(Node3);
                              end;
                               
                              Label1.Caption:='Макс '+IntToStr(MaxSet)+' сек: '+IntToStr(t);
                               
                              if Node3 = nil then Timer1.Enabled := False;
                               
                               
                              end;
                               
                              end.
                            Сообщение отредактировано: Katerina1993 -
                              Так в чем собственно проблема. Вместе с Node определяете переменную Index типа Integer и в ней осуществляете проход по картинкам.
                              ExpandedWrap disabled
                                procedure TForm1.Timer1Timer(Sender: TObject);
                                begin
                                  with Node.Item[3] do begin
                                    if Index < Count then
                                      Item[Index].Item[1].Text := 'ok'; // Data[Node] -> Img -> Big[Index] -> Status
                                    inc(Index);
                                    if Index >= Count then
                                      repeat
                                        with Node.Item[2] do begin
                                          Text := 'ok'; // Data[Node] -> Status
                                          Node := Node.GetNextChild(Node); // Data[Node++] -- Переходим к следующей
                                          Text := 'current'; // Data[Node] -> Status
                                          Index := Low(Node.Item);
                                        end;
                                      until Count > 0; // Пройти все Data[Node], у которых нет картинок, без задержки.
                                // Чтобы на каждой Data[Node] Без картинок задержаться на 1 интервал таймера просто
                                // уберите цикл repeat ... until Count > 0 оставив внутреннее содержимое без цикла.
                                  end;
                                end;
                              Перед запуском таймера надо сделать так
                              ExpandedWrap disabled
                                Node := TreeView1.Items.GetFirstNode;
                                Node.Item[2].Text := 'current';
                                Index := Low(Node.Item);
                                Timer1.Enabled := True; // Запустили таймер
                              Сообщение отредактировано: macomics -
                                Цитата
                                Low(Node.Item)

                                Не работает, я уже создала новый проект, чтобы протестировать отдельно эту функцию.
                                ExpandedWrap disabled
                                  unit Unit1;
                                   
                                  interface
                                   
                                  uses
                                    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                                    Dialogs, ComCtrls, StdCtrls;
                                   
                                  type
                                    TForm1 = class(TForm)
                                      TreeView1: TTreeView;
                                      Button1: TButton;
                                      procedure FormShow(Sender: TObject);
                                      procedure Button1Click(Sender: TObject);
                                    private
                                      { Private declarations }
                                    public
                                      { Public declarations }
                                    end;
                                  var
                                    Form1: TForm1;
                                    Node1:TTreeNode;
                                  implementation
                                   
                                  {$R *.dfm}
                                   
                                   
                                   
                                  procedure TForm1.FormShow(Sender: TObject);
                                  begin
                                    Node1 := TreeView1.Items.GetFirstNode;
                                  end;
                                   
                                  procedure TForm1.Button1Click(Sender: TObject);
                                  begin
                                  ShowMessage(IntToStr(Low(Node1.Item)));
                                  ShowMessage(Node1.Item[1].text);
                                  Node1 := Node1.GetNextChild(Node1);
                                  if Node1 = nil then Button1.Enabled := False;
                                  end;
                                   
                                  end.

                                Получаю сообщение об ошибке.
                                Цитата

                                [Error] Unit1.pas(36): '[' expected but ')' found
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0674 ]   [ 27 queries used ]   [ Generated: 9.12.24, 13:43 GMT ]