<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871710</guid>
        <pubDate>Fri, 15 Jul 2022 20:28:30 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871710</link>
        <description><![CDATA[Katerina1993: Все разобралась, теперь работает.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, ComCtrls, ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1: TTimer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp; &nbsp;vetka,text,data1,item1,Node,Node3,Node1,Node2: TTreeNode;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TImagePixel = packed record</div><div class="code_line">&nbsp;&nbsp;case Byte of</div><div class="code_line">&nbsp;&nbsp;0: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;Blue: &nbsp;Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Green: Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Red: &nbsp; Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Alpha: Byte;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">&nbsp;&nbsp;1: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;color: TColor;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">TImageData = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">&nbsp;&nbsp;status: String;</div><div class="code_line">&nbsp;&nbsp;type1: String;</div><div class="code_line">&nbsp;&nbsp;Pixels: array of array of TImagePixel;</div><div class="code_line">end;</div><div class="code_line">TText=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;description: String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TItem=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: TText;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">TBig &nbsp; = array of TImageData;</div><div class="code_line">TSmall = array of TImageData;</div><div class="code_line">TImage = packed record</div><div class="code_line">&nbsp;&nbsp;title: String;</div><div class="code_line">&nbsp;&nbsp;text: String;</div><div class="code_line">&nbsp;&nbsp;status: String;</div><div class="code_line">&nbsp;&nbsp;big: &nbsp; &nbsp; &nbsp;TBig;</div><div class="code_line">&nbsp;&nbsp;small: &nbsp; &nbsp;TSmall;</div><div class="code_line">&nbsp;&nbsp;countImg: Integer;</div><div class="code_line">&nbsp;&nbsp;item:TItem;</div><div class="code_line">end;</div><div class="code_line">TSize = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Image : Array Of TImage;</div><div class="code_line">&nbsp;&nbsp;Index1:Integer;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">function GetTSize(aWidth: LongInt; aHeight: LongInt): TSize;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Width &nbsp;:= aWidth;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Height := aHeight;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function NewTImage(count: LongInt; smallImg: TSize; bigImg: TSize): TImage;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i: LongInt;</div><div class="code_line">begin</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;countImg := count;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(big, count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(small, count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(small) to High(small) do with small[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= smallImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := smallImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength(Pixels, smallImg.Width, smallImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(big) &nbsp; to High(big) &nbsp; do with &nbsp; big[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= &nbsp; bigImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := &nbsp; bigImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength( &nbsp;Pixels, &nbsp; bigImg.Width, &nbsp; bigImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;//Image: TImage;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;setLength(Image,10);</div><div class="code_line">&nbsp;&nbsp;Image[0] := NewTImage(4, GetTSize(16, 16), GetTSize(256, 256)); // Выделит 10 маленьких изображений и 10 больших изображений. Общий объем выделенной памяти:</div><div class="code_line">&nbsp;// Image[0].countImg := 4; //&#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">&nbsp;&nbsp;Image[0].title := &#39;Название&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].text:=&#39;Мой текст&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[0].status:=&#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].item.text.description:=&#39;Описание 3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[0].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[2].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[0].big[3].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[1]:=NewTImage(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;&nbsp;Image[1].title:=&#39;Название 1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].text:=&#39;Мой текст 1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].item.text.description:=&#39;Описание 2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[0].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[1].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[2]:=NewTImage(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;&nbsp;Image[2].title:=&#39;test&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[2].title:=&#39;Название 2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].text:=&#39;Мой текст 2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].item.text.description:=&#39;Описание 3&#39;;</div><div class="code_line">//Image[2] --&#62; img[0..3] ********************************************************</div><div class="code_line">&nbsp;&nbsp;Image[2].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[3].type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[0].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[2].big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[3]:=NewTImage(2, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;&nbsp;Image[3].title:=&#39;Название 3&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[3].text:=&#39;Мой текст 3&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[3].item.text.description:=&#39;Описание 4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Image[3] --&#62; img[0..1] ********************************************************</div><div class="code_line">&nbsp;&nbsp;Image[3].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[3].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[3].big[0].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[3].big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[4]:=NewTImage(7, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[4].title:=&#39;Название 4&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].text:=&#39;Мой текст 4&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].item.text.description:=&#39;Описание 5&#39;;</div><div class="code_line">//Image[4] --&#62; img[0..6] ********************************************************</div><div class="code_line">&nbsp;&nbsp;Image[4].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[3].type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[4].type1:=&#39;test5&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[5].type1:=&#39;test6&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[6].type1:=&#39;test7&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[0].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[4].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[5].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp;Image[4].big[6].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Image[5]:=NewTImage(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;</div><div class="code_line">Image[5].title:=&#39;Название 5&#39;;</div><div class="code_line">Image[5].text:=&#39;Мой текст 5&#39;;</div><div class="code_line">Image[5].status:=&#39;wait&#39;;</div><div class="code_line">Image[5].item.text.description:=&#39;Описание 6&#39;;</div><div class="code_line">//Image[5] --&#62; img[0..2] ********************************************************</div><div class="code_line">Image[5].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Image[5].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Image[5].big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[5].big[0].status:=&#39;wait&#39;;</div><div class="code_line">Image[5].big[1].status:=&#39;wait&#39;;</div><div class="code_line">Image[5].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[6]:=NewTImage(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Image[6].title:=&#39;Название 6&#39;;</div><div class="code_line">Image[6].text:=&#39;Мой текст 6&#39;;</div><div class="code_line">Image[6].status:=&#39;wait&#39;;</div><div class="code_line">Image[6].item.text.description:=&#39;Описание 7&#39;;</div><div class="code_line">//Image[6] --&#62; img[0..3] ********************************************************</div><div class="code_line">Image[6].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Image[6].big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Image[6].big[2].type1:=&#39;test3&#39;;</div><div class="code_line">Image[6].big[3].type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[6].big[0].status:=&#39;wait&#39;;</div><div class="code_line">Image[6].big[1].status:=&#39;wait&#39;;</div><div class="code_line">Image[6].big[2].status:=&#39;wait&#39;;</div><div class="code_line">Image[6].big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[7]:=NewTImage(8, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Image[7].title:=&#39;Название 7&#39;;</div><div class="code_line">Image[7].text:=&#39;Мой текст 7&#39;;</div><div class="code_line">Image[7].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Image[7] --&#62; img[0..7] ********************************************************</div><div class="code_line">Image[7].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[2].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[3].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[4].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[5].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[6].type1:=&#39;test1&#39;;</div><div class="code_line">Image[7].big[7].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[7].big[0].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[1].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[2].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[3].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[4].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[5].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[6].status:=&#39;wait&#39;;</div><div class="code_line">Image[7].big[7].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[8]:=NewTImage(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Image[8].title:=&#39;Название 8&#39;;</div><div class="code_line">Image[8].text:=&#39;Мой текст 8&#39;;</div><div class="code_line">Image[8].status:=&#39;wait&#39;;</div><div class="code_line">Image[8].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Image[8] --&#62; img[0..2] ********************************************************</div><div class="code_line">Image[8].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Image[8].big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Image[8].big[2].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[8].big[0].status:=&#39;wait&#39;;</div><div class="code_line">Image[8].big[1].status:=&#39;wait&#39;;</div><div class="code_line">Image[8].big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[9]:=NewTImage(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Image[9].title:=&#39;Название 9&#39;;</div><div class="code_line">Image[9].text:=&#39;Мой текст 9&#39;;</div><div class="code_line">Image[9].status:=&#39;wait&#39;;</div><div class="code_line">Image[9].item.text.description:=&#39;Описание 9&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Image[9] --&#62; img[0..3] ********************************************************</div><div class="code_line">Image[9].big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Image[9].big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Image[9].big[2].type1:=&#39;test1&#39;;</div><div class="code_line">Image[9].big[3].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Image[9].big[0].status:=&#39;wait&#39;;</div><div class="code_line">Image[9].big[1].status:=&#39;wait&#39;;</div><div class="code_line">Image[9].big[2].status:=&#39;wait&#39;;</div><div class="code_line">Image[9].big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">var i,j,Index1: Integer;</div><div class="code_line">//vetka,text,data1,item1,Node: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for I := Low(Image) to High(Image) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; data1:=TreeView1.Items.Add(nil,&#39;Data[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Title&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Image[i].title);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Text[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Image[i].text);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Status[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Image[i].status);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;item[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,&#39;Text&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node, &#39;Description&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Image[i].item.text.description);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node1:=TreeView1.Items.AddChild(data1,&#39;img[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for J := Low(Image[i].big) to High(Image[i].big) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// &nbsp;ShowMessage(Data[i].NewTImage.big[j].status);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node2:=TreeView1.Items.AddChild(Node1,&#39;big&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Image[i].big[j].status); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Image[i].big[j].type1); </div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TreeView1.FullExpand;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;if Node3 &#60;&#62; nil then Node3.Item[2].Item[0].Text := &#39;current&#39;; // Установить у Image[0] -&#62; Status = current</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for Index1 := 0 to Node3.Item[4].Count - 1 do Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1 := 0; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">//*****************************</div><div class="code_line">//*1 Вариант</div><div class="code_line">//*****************************</div><div class="code_line">{}with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//Item[Index1].Item[1].Text := &#39;ok&#39;; // Image[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[2].Item[0].Text := &#39;ok&#39;; // Image[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3); // Image[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until Node3.Item[4].Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">//*****************************</div><div class="code_line">//*2 Вариант</div><div class="code_line">//*****************************</div><div class="code_line">{case Index1 of</div><div class="code_line">&nbsp;&nbsp;-1: Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; with Node3.Item[4] do begin // Так лучше, чтобы не было лишней задержки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[2].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Index1 := -2; // Потом все равно будет inc(Index1) и значение станет -1. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;inc(Index1); }</div><div class="code_line">//*****************************************************</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871705</guid>
        <pubDate>Fri, 15 Jul 2022 18:55:45 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871705</link>
        <description><![CDATA[macomics: Вот такую структуру данных создает функция NewTImage в моем исходном варианте<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Data[0] := NewTImage(10, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">// Data[0].countImg - количество катринок в массивах big и small (это же значение можно получить через</div><div class="code_line">// Length(big) или Length(small) - его можно и не сохранять, но в исходной структуре оно было).</div><div class="code_line">// После функции NewTImage равно значению из первого параметра т.е. 10.</div><div class="code_line">&nbsp;</div><div class="code_line">// Data[0].big[индекс картинки].Width и Data[0].big[индекс картинки].Height - размеры большой картинки</div><div class="code_line">// После функции NewTImage равно значению третьего параметра, т.е. Width = 256 и Height = 256</div><div class="code_line">&nbsp;</div><div class="code_line">// Data[0].big[индекс картинки].Pixels[Номер строки, Номер столбца].color - цвет пикселя изображения</div><div class="code_line">// размером 256 на 256, т.е. Номер строки изменяется в пределах от 0 до 255 и в таких же пределах</div><div class="code_line">// изменяется Номер столбца. Значение не инициализировано, но место зарезервировано для загрузки картинки</div><div class="code_line">&nbsp;</div><div class="code_line">// Data[0].small[индекс картинки].Width и Data[0].small[индекс картинки].Height - размеры малой картинки</div><div class="code_line">// После функции NewTImage равно значению второго параметра, т.е. Width = 16 и Height = 16</div><div class="code_line">&nbsp;</div><div class="code_line">// Data[0].small[индекс картинки].Pixels[Номер строки, Номер столбца].color - цвет пикселя изображения</div><div class="code_line">// размером 16 на 16, т.е. Номер строки изменяется в пределах от 0 до 15 и в таких же пределах</div><div class="code_line">// изменяется Номер столбца. Значение не инициализировано, но место зарезервировано для загрузки картинки</div></ol></div></div></div></div><br>
В вашем случае это будет такая структура<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Data[0] := TData.Create(5, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">// Data[0].sLength = 4 &#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">// Data[0].title = ??? &#60;- Это значение не инициализировано</div><div class="code_line">// Data[0].text = ??? &#60;- Это значение не инициализировано</div><div class="code_line">// Data[0].smallImg.Width = 16 &#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">// Data[0].smallImg.Height = 16 &#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">// Data[0].bigImg.Width = 256 &#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">// Data[0].bigImg.Height = 256 &#60;- Вы инициализируете это значение в конструкторе</div><div class="code_line">// Data[0].status = ??? &#60;- Это значение не инициализировано</div><div class="code_line">// Data[0].item.text = ??? &#60;- Это значение не инициализировано</div></ol></div></div></div></div>В моей исходной структуре данных только значения в массивах для хранения картинок не инициализируются. Но в вашей структуре остается очень много незаполненных значений, которые вы вручную заполняете после.<br>
Для того, чтобы не печатать лишний текст используйте для заполнения структуры конструкцию <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">with Data[0] do begin</div><div class="code_line">// &nbsp;Далее к полям Data[0] можно обращаться напрямую</div><div class="code_line">&nbsp;&nbsp;sLength := 5;</div><div class="code_line">end;</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-07-15T19:04:34+00:00">15.07.22, 19:04</time></span></span><br>
Попробую кратко объяснить что делает эта строка<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Data[0].NewTImage.big[0].status:=&#39;wait&#39;;</div></ol></div></div></div></div> Она создает мою структуру вызывая конструктор NewTImage. Далее вы обращаетесь к полю этой новой структуры big и выбираете из массива элемент с нулевым индексом. В этом элементе обращаетесь к полю status устанавливая его значение в &#39;wait&#39;. Но после этого моя конструкция ни где не сохраняется и следующая строка<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Data[0].NewTImage.big[1].status:=&#39;wait&#39;;</div></ol></div></div></div></div>Выделяет новую структуру, с которой происходит тоже самое, что и с первой. И вторая структура тоже ни где не сохраняется. и т. д. для каждой из похожих на эти строчек.<br>
<br>
Посмотрите мой пример еще раз. На 63 строке я приводил строчку, которая использует мою функцию правильно. Вы потеряли Image :=]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871704</guid>
        <pubDate>Fri, 15 Jul 2022 18:21:42 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871704</link>
        <description><![CDATA[Katerina1993: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Зачем вы добавили дополнительный конструктор.</div></div><br>
Я не до конца поняла как конструктор работает. Он устанавливает значение для определенного количества изображений, но здесь также следует учитывать, что картинки вложены в массив data. Это значит что массив многомерный. Как с этим быть?<br>
Например<br>
Data[0].img[0..9] &lt;--выбор картинки.]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871703</guid>
        <pubDate>Fri, 15 Jul 2022 18:16:05 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871703</link>
        <description><![CDATA[macomics: На 96 строке скорее всего надо написать так<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">bigImg:=_bigImg;</div></ol></div></div></div></div><br>
Функция NewTImage это и есть конструктор. Зачем вы добавили дополнительный конструктор. Функция NewTImage должна вызываться в конструкторе и больше ни где&#33; Она выделяет память и инициализирует некоторые значения в полях получившейся структуры. После этого вы можете обращаться к полям структуры без вызова этой функции.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">ShowMessage(Data[0].big[0].status);</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871697</guid>
        <pubDate>Fri, 15 Jul 2022 17:40:23 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871697</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'><br>
macomics,</strong><br>
Добавила функцию для создания массива и переделала код под себя. Столкнулась с такой проблемой, что в дереве у картинок status не выводится. Протестировала и присвоила любое значение status в функции NewTImage оно выводится, но стоит записать вот так:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>status:=big[i].status;, </div></div><br>
то значение пустое, хотя я обращаюсь к записи <br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>TImageData = packed record </div></div> куда отправляется значение статуса картинки. Вот мой код полностью.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, StdCtrls, ComCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Button1: TButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">TImagePixel = packed record</div><div class="code_line">&nbsp;&nbsp;case Byte of</div><div class="code_line">&nbsp;&nbsp;0: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;Blue: &nbsp;Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Green: Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Red: &nbsp; Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Alpha: Byte;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">&nbsp;&nbsp;1: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;color: TColor;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">end;</div><div class="code_line">TImageData = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">&nbsp;&nbsp;status:String;</div><div class="code_line">&nbsp;&nbsp;type1:String;</div><div class="code_line">&nbsp;&nbsp;Pixels: array of array of TImagePixel;</div><div class="code_line">end;</div><div class="code_line">TBig &nbsp; = array of TImageData;</div><div class="code_line">TSmall = array of TImageData;</div><div class="code_line">&nbsp;</div><div class="code_line">TText=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;description: String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TItem=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: TText;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">TImage = packed record</div><div class="code_line">&nbsp;&nbsp;big: &nbsp; &nbsp; &nbsp;TBig;</div><div class="code_line">&nbsp;&nbsp;small: &nbsp; &nbsp;TSmall;</div><div class="code_line">&nbsp;&nbsp;countImg: Integer;</div><div class="code_line">&nbsp;&nbsp;//status: String;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">TSize = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">&nbsp;&nbsp;Big1 : array of TBig;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">TData = class</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;sLength : Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;title : String;</div><div class="code_line">&nbsp;&nbsp; &nbsp;text: String;</div><div class="code_line">&nbsp;&nbsp; &nbsp;smallImg: TSize;</div><div class="code_line">&nbsp;&nbsp; &nbsp;bigImg: TSize;</div><div class="code_line">&nbsp;&nbsp; &nbsp;status:String;</div><div class="code_line">&nbsp;&nbsp; &nbsp;item:TItem;</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;constructor Create(_Length:Integer; _smallImg: TSize; _bigImg: TSize);</div><div class="code_line">&nbsp;&nbsp; &nbsp;function NewTImage(): TImage;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Data : Array Of TData;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;constructor TData.Create(_Length:Integer;_smallImg: TSize; _bigImg: TSize);</div><div class="code_line">&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; inherited Create;</div><div class="code_line">&nbsp;&nbsp; sLength:=_Length;</div><div class="code_line">&nbsp;&nbsp; smallImg:=_smallImg;</div><div class="code_line">&nbsp;&nbsp; smallImg:=_bigImg;</div><div class="code_line">&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">function TData.NewTImage(): TImage;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i: LongInt;</div><div class="code_line">begin</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;countImg := sLength;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(big, sLength);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(small, sLength);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(small) to High(small) do with small[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= smallImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := smallImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;status:=small[i].status;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;type1:=small[i].type1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength(Pixels, smallImg.Width, smallImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(big) &nbsp; to High(big) &nbsp; do with big[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= &nbsp; bigImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := &nbsp; bigImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;status:=big[i].status;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;type1:=big[i].type1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength( &nbsp;Pixels, &nbsp; bigImg.Width, &nbsp; bigImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function GetTSize(aWidth: LongInt; aHeight: LongInt): TSize; </div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Width &nbsp;:= aWidth;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Height := aHeight;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end; </div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">setLength(Data,10);</div><div class="code_line">Data[0]:=TData.Create(5, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[0].title:=&#39;Название&#39;;</div><div class="code_line">Data[0].text:=&#39;Мой текст&#39;;</div><div class="code_line">Data[0].status:=&#39;current&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].item.text.description:=&#39;Описание 1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[0].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[0].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[0].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[0].NewTImage.big[4].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].NewTImage.big[0].status:=&#39;test1&#39;;</div><div class="code_line">Data[0].NewTImage.big[1].status:=&#39;test2&#39;;</div><div class="code_line">Data[0].NewTImage.big[2].status:=&#39;test2&#39;;</div><div class="code_line">Data[0].NewTImage.big[3].status:=&#39;test3&#39;;</div><div class="code_line">Data[0].NewTImage.big[4].status:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[1]:=TData.Create(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[1].title:=&#39;Название 1&#39;;</div><div class="code_line">Data[1].text:=&#39;Мой текст 1&#39;;</div><div class="code_line">Data[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[1].item.text.description:=&#39;Описание 2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[1].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[1].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Data[1].NewTImage.big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[1].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[1].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[1].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2]:=TData.Create(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[2].title:=&#39;test&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].title:=&#39;Название 2&#39;;</div><div class="code_line">Data[2].text:=&#39;Мой текст 2&#39;;</div><div class="code_line">Data[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].item.text.description:=&#39;Описание 3&#39;;</div><div class="code_line">//Data[2] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[2].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[2].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Data[2].NewTImage.big[2].type1:=&#39;test3&#39;;</div><div class="code_line">Data[2].NewTImage.big[3].type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[3]:=TData.Create(2, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[3].title:=&#39;Название 3&#39;;</div><div class="code_line">Data[3].text:=&#39;Мой текст 3&#39;;</div><div class="code_line">Data[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[3].item.text.description:=&#39;Описание 4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[3] --&#62; img[0..1] ********************************************************</div><div class="code_line">Data[3].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[3].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[3].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[3].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4]:=TData.Create(7, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].title:=&#39;Название 4&#39;;</div><div class="code_line">Data[4].text:=&#39;Мой текст 4&#39;;</div><div class="code_line">Data[4].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].item.text.description:=&#39;Описание 5&#39;;</div><div class="code_line">//Data[4] --&#62; img[0..6] ********************************************************</div><div class="code_line">Data[4].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[4].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Data[4].NewTImage.big[2].type1:=&#39;test3&#39;;</div><div class="code_line">Data[4].NewTImage.big[3].type1:=&#39;test4&#39;;</div><div class="code_line">Data[4].NewTImage.big[4].type1:=&#39;test5&#39;;</div><div class="code_line">Data[4].NewTImage.big[5].type1:=&#39;test6&#39;;</div><div class="code_line">Data[4].NewTImage.big[6].type1:=&#39;test7&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[4].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[5].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].NewTImage.big[6].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5]:=TData.Create(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].title:=&#39;Название 5&#39;;</div><div class="code_line">Data[5].text:=&#39;Мой текст 5&#39;;</div><div class="code_line">Data[5].status:=&#39;wait&#39;;</div><div class="code_line">Data[5].item.text.description:=&#39;Описание 6&#39;;</div><div class="code_line">//Data[5] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[5].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[5].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Data[5].NewTImage.big[2].type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[5].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[5].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6]:=TData.Create(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[6].title:=&#39;Название 6&#39;;</div><div class="code_line">Data[6].text:=&#39;Мой текст 6&#39;;</div><div class="code_line">Data[6].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].item.text.description:=&#39;Описание 7&#39;;</div><div class="code_line">//Data[6] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[6].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[6].NewTImage.big[1].type1:=&#39;test2&#39;;</div><div class="code_line">Data[6].NewTImage.big[2].type1:=&#39;test3&#39;;</div><div class="code_line">Data[6].NewTImage.big[3].type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7]:=TData.Create(8, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[7].title:=&#39;Название 7&#39;;</div><div class="code_line">Data[7].text:=&#39;Мой текст 7&#39;;</div><div class="code_line">Data[7].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[7] --&#62; img[0..7] ********************************************************</div><div class="code_line">Data[7].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[2].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[3].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[4].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[5].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[6].type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].NewTImage.big[7].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[4].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[5].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[6].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].NewTImage.big[7].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8]:=TData.Create(3, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[8].title:=&#39;Название 8&#39;;</div><div class="code_line">Data[8].text:=&#39;Мой текст 8&#39;;</div><div class="code_line">Data[8].status:=&#39;wait&#39;;</div><div class="code_line">Data[8].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[8] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[8].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].NewTImage.big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].NewTImage.big[2].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[8].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[8].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[9]:=TData.Create(4, GetTSize(16, 16), GetTSize(256, 256));</div><div class="code_line">Data[9].title:=&#39;Название 9&#39;;</div><div class="code_line">Data[9].text:=&#39;Мой текст 9&#39;;</div><div class="code_line">Data[9].status:=&#39;wait&#39;;</div><div class="code_line">Data[9].item.text.description:=&#39;Описание 9&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[9] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[9].NewTImage.big[0].type1:=&#39;test1&#39;;</div><div class="code_line">Data[9].NewTImage.big[1].type1:=&#39;test1&#39;;</div><div class="code_line">Data[9].NewTImage.big[2].type1:=&#39;test1&#39;;</div><div class="code_line">Data[9].NewTImage.big[3].type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[9].NewTImage.big[0].status:=&#39;wait&#39;;</div><div class="code_line">Data[9].NewTImage.big[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[9].NewTImage.big[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[9].NewTImage.big[3].status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">var i,j,Index1: Integer;</div><div class="code_line">vetka,text,data1,item1,Node,Node1,Node2: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for I := Low(Data) to High(Data) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; data1:=TreeView1.Items.Add(nil,&#39;Data[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Title&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].title);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Text[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].text);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Status[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].status);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;item[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,&#39;Text&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node, &#39;Description&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].item.text.description);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node1:=TreeView1.Items.AddChild(data1,&#39;img[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; for J := Low(Data[i].NewTImage.big) to High(Data[i].NewTImage.big) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// &nbsp;ShowMessage(Data[i].NewTImage.big[j].status);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node2:=TreeView1.Items.AddChild(Node1,&#39;big&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].NewTImage.big[j].status); //ЗНАЧЕНИЕ ПУСТОЕ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].NewTImage.big[j].type1); &nbsp;//ЗДЕСЬ ТОЖЕ ЗНАЧЕНИЕ ПУСТОЕ</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">ShowMessage(Data[0].NewTImage.big[0].status); //ПРОВЕРКА ПУСТОЕ ЗНАЧЕНИЕ</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871619</guid>
        <pubDate>Fri, 15 Jul 2022 08:07:49 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871619</link>
        <description><![CDATA[macomics: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TImagePixel = packed record</div><div class="code_line">&nbsp;&nbsp;case Byte of</div><div class="code_line">&nbsp;&nbsp;0: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;Blue: &nbsp;Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Green: Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Red: &nbsp; Byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Alpha: Byte;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">&nbsp;&nbsp;1: (</div><div class="code_line">&nbsp;&nbsp; &nbsp;color: TColor;</div><div class="code_line">&nbsp;&nbsp;);</div><div class="code_line">end;</div><div class="code_line">TImageData = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">&nbsp;&nbsp;Pixels: array of array of TImagePixel;</div><div class="code_line">end;</div><div class="code_line">TBig &nbsp; = array of TImageData;</div><div class="code_line">TSmall = array of TImageData;</div><div class="code_line">TImage = packed record</div><div class="code_line">&nbsp;&nbsp;big: &nbsp; &nbsp; &nbsp;TBig;</div><div class="code_line">&nbsp;&nbsp;small: &nbsp; &nbsp;TSmall;</div><div class="code_line">&nbsp;&nbsp;countImg: Integer;</div><div class="code_line">end;</div><div class="code_line">TSize = packed record</div><div class="code_line">&nbsp;&nbsp;Width: &nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;Height: LongInt;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function GetTSize(aWidth: LongInt; aHeight: LongInt): TSize; inline;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Width &nbsp;:= aWidth;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Height := aHeight;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function NewTImage(count: LongInt; smallImg: TSize; bigImg: TSize): TImage; inline;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i: LongInt;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with Result do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;countImg := count;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(big, count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(small, count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(small) to High(small) do with small[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= smallImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := smallImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength(Pixels, smallImg.Width, smallImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := Low(big) &nbsp; to High(big) &nbsp; do with &nbsp; big[i] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Width &nbsp;:= &nbsp; bigImg.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Height := &nbsp; bigImg.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SetLength( &nbsp;Pixels, &nbsp; bigImg.Width, &nbsp; bigImg.Height);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1Create(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Image: TImage;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Image := NewTImage(10, GetTSize(16, 16), GetTSize(256, 256)); // Выделит 10 маленьких изображений и 10 больших изображений. Общий объем выделенной памяти:</div><div class="code_line">// sizeof(Image.big) &nbsp; &nbsp; &nbsp;= 4</div><div class="code_line">// sizeof(Image.small) &nbsp; &nbsp;= 4</div><div class="code_line">// sizeof(Image.countImg) = 4</div><div class="code_line">// i in [0 .. 9] x {</div><div class="code_line">// &nbsp; sizeof(Image.big[i].Width) &nbsp;= 4</div><div class="code_line">// &nbsp; sizeof(Image.big[i].Height) = 4</div><div class="code_line">// &nbsp; sizeof(Image.big[i].Pixels) = 4</div><div class="code_line">// &nbsp; j in [0 .. 255] * k in [0 .. 255] x {</div><div class="code_line">// &nbsp; &nbsp; sizeof(Image.big[i].Pixels[j,k].color) = 4</div><div class="code_line">// &nbsp; }</div><div class="code_line">// &nbsp; sizeof(Image.small[i].Width) &nbsp;= 4</div><div class="code_line">// &nbsp; sizeof(Image.small[i].Height) = 4</div><div class="code_line">// &nbsp; sizeof(Image.small[i].Pixels) = 4</div><div class="code_line">// &nbsp; j in [0 .. 15] * k in [0 .. 15] x {</div><div class="code_line">// &nbsp; &nbsp; sizeof(Image.small[i].Pixels[j,k].color) = 4</div><div class="code_line">// &nbsp; }</div><div class="code_line">// }</div><div class="code_line">// Итого = 12 + 10 * (12 + 256 * 256 * 4 + 12 + 16 * 16 * 4) = 2640372 = 2 Mb + 530 kb + 212 bytes</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871617</guid>
        <pubDate>Fri, 15 Jul 2022 07:12:10 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871617</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'>RusSun</strong>, я понимаю, что массив у меня не совсем правильно реализован. Просто я пока еще не знаю как составить массив из записей, при условии когда в одну запись record, вложен еще один массив, например с картинками и как правильно установить setLength, когда изначально количество картинок неизвестно, например их может быть 2,3 или 5, поэтому нужно как-то сделать массив динамическим, а setLength чтобы мог работать с заранее неизвестным количеством изображений. Единственное что приходит на ум это в главном record где содержится массив с картинками добавить еще одну переменную, например countImg и присваивать ей значение количество картинок, потом использовать эту переменную в setLength вот так.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TImage=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;big:TBig;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;small:TSmall;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;countImg:Integer; //&#60;-- количество картинок</div><div class="code_line">&nbsp;&nbsp;end;</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871615</guid>
        <pubDate>Fri, 15 Jul 2022 05:44:31 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871615</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428534&view=findpost&p=3871612'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>RusSun &#064; <time class="tag-quote__quoted-time" datetime="2022-07-15T04:19:03+00:00">15.07.22, 04:19</time></span><div class='quote '>В<br>
Цитата Katerina1993 @ Вчера, 16:40<br>
procedure TForm1.FormCreate(Sender: TObject);<br>
<br>
строка 147<br>
CollapsedWrap disabledLine numbers on<br>
<br>
    SetLength(Data[9].img,4);<br>
<br>
<br>
Не закомментировано, поэтому даст access violation.</div></div><br>
Скорее надо на 135 строке<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//В ДОКУМЕНТЕ МАССИВ СОСТОИТ ИЗ 10 ЭЛЕМЕНТОВ, устанавливаем SetLength.</div><div class="code_line">SetLength(Data,9);</div></ol></div></div></div></div>исправить 9 на 10, как и написано в комментарии выше]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871612</guid>
        <pubDate>Fri, 15 Jul 2022 04:19:03 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871612</link>
        <description><![CDATA[RusSun: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428534&view=findpost&p=3871564'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Katerina1993 &#064; <time class="tag-quote__quoted-time" datetime="2022-07-14T13:40:13+00:00">14.07.22, 13:40</time></span><div class='quote '>Спасибо, вот мой вариант под Delphi7.</div></div><br>
В <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428534&view=findpost&p=3871564'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Katerina1993 &#064; <time class="tag-quote__quoted-time" datetime="2022-07-14T13:40:13+00:00">14.07.22, 13:40</time></span><div class='quote '>procedure TForm1.FormCreate(Sender: TObject);</div></div><br>
строка 147<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">SetLength(Data[9].img,4);</div></ol></div></div></div></div><br>
Не закомментировано, поэтому даст access violation.<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"> First chance exception at &#036;768FC3A2. Exception class EAccessViolation with message &#39;Access violation at address 004055A9 in module &#39;Project1.exe&#39;. Read of address 6572436A&#39;. Process Project1.exe (3916)</div></div><br>
У Вас &quot;Data[8]&quot; используется +, а &quot;Data[9]&quot; -&gt; уже закомментировано ниже по коду, не используется.]]></description>
        <author>RusSun</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871564</guid>
        <pubDate>Thu, 14 Jul 2022 13:40:13 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871564</link>
        <description><![CDATA[Katerina1993: Спасибо, вот мой вариант под Delphi7.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, StdCtrls, ComCtrls, ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1: TTimer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label1: TLabel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Button1: TButton;</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp; &nbsp;vetka,text,data1,item1,Node,Node3: TTreeNode;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TText=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;description: String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TItem=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: TText;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TSmall=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; status:String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; width:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; height:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; type1:String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TBig=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; status:String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; width:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; height:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; type1:String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TImage=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;big:TBig;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;small:TSmall;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TIndex=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; title : String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; text: String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; status : String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; item:TItem;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; img:array of TImage;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;type</div><div class="code_line">&nbsp;&nbsp; &nbsp;TData = array of TIndex;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Data: TData;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;st: String;</div><div class="code_line">&nbsp;&nbsp;t:Integer = 0;</div><div class="code_line">&nbsp;&nbsp;Index1:Integer = 0;</div><div class="code_line">&nbsp;&nbsp;MaxSet:Integer=0;</div><div class="code_line">&nbsp;&nbsp;FullView:Boolean;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Пример записи в массив</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">var i,j,Index1: Integer;</div><div class="code_line">vetka,text,data1,item1,Node,Node1,Node2: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for I := Low(Data) to High(Data) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; data1:=TreeView1.Items.Add(nil,&#39;Data[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Title&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].title);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Text[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].text);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Status[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].status);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;item[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,&#39;Text&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node, &#39;Description&#39;+IntToStr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].item.text.description);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node1:=TreeView1.Items.AddChild(data1,&#39;img[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for J := Low(Data[i].img) to High(Data[i].img) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node2:=TreeView1.Items.AddChild(Node1,&#39;big&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.status);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.type1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;if Node3 &#60;&#62; nil then Node3.Item[2].Item[0].Text := &#39;current&#39;; // Установить у Data[0] -&#62; Status = current</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for Index1 := 0 to Node3.Item[4].Count - 1 do Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1 := 0; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FullView:=True;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">//В ДОКУМЕНТЕ МАССИВ СОСТОИТ ИЗ 10 ЭЛЕМЕНТОВ, устанавливаем SetLength.</div><div class="code_line">SetLength(Data,9);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">SetLength(Data[0].img,5);</div><div class="code_line">SetLength(Data[1].img,3);</div><div class="code_line">SetLength(Data[2].img,4);</div><div class="code_line">SetLength(Data[3].img,2);</div><div class="code_line">SetLength(Data[4].img,7);</div><div class="code_line">SetLength(Data[5].img,3);</div><div class="code_line">SetLength(Data[6].img,4);</div><div class="code_line">SetLength(Data[7].img,8);</div><div class="code_line">SetLength(Data[8].img,3);</div><div class="code_line">SetLength(Data[9].img,4);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].title:=&#39;Название&#39;;</div><div class="code_line">Data[0].text:=&#39;Мой текст&#39;;</div><div class="code_line">Data[0].status:=&#39;current&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].item.text.description:=&#39;Описание 1&#39;;</div><div class="code_line">//Data[0] --&#62; img[0..4] ********************************************************</div><div class="code_line">Data[0].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[0].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[0].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[0].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">Data[0].img[4].big.type1:=&#39;test5&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[0] --&#62; img[0..4]*****************************************************</div><div class="code_line">Data[1].title:=&#39;Название 1&#39;;</div><div class="code_line">Data[1].text:=&#39;Мой текст 1&#39;;</div><div class="code_line">Data[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[1].item.text.description:=&#39;Описание 2&#39;;</div><div class="code_line">//Data[1] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[1].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[1].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[1].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[1].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[1].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[1].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[1] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].title:=&#39;Название 2&#39;;</div><div class="code_line">Data[2].text:=&#39;Мой текст 2&#39;;</div><div class="code_line">Data[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].item.text.description:=&#39;Описание 3&#39;;</div><div class="code_line">//Data[2] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[2].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[2].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[2].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[2].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[2] --&#62; img[0..3] ****************************************************</div><div class="code_line">Data[3].title:=&#39;Название 3&#39;;</div><div class="code_line">Data[3].text:=&#39;Мой текст 3&#39;;</div><div class="code_line">Data[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[3].item.text.description:=&#39;Описание 4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[3] --&#62; img[0..1] ********************************************************</div><div class="code_line">Data[3].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[3].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[3].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[3].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[3] --&#62; img[0..1] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].title:=&#39;Название 4&#39;;</div><div class="code_line">Data[4].text:=&#39;Мой текст 4&#39;;</div><div class="code_line">Data[4].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].item.text.description:=&#39;Описание 5&#39;;</div><div class="code_line">//Data[4] --&#62; img[0..6] ********************************************************</div><div class="code_line">Data[4].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[4].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[4].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[4].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">Data[4].img[4].big.type1:=&#39;test5&#39;;</div><div class="code_line">Data[4].img[5].big.type1:=&#39;test6&#39;;</div><div class="code_line">Data[4].img[6].big.type1:=&#39;test7&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[5].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[6].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[4] --&#62; img[0..6] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].title:=&#39;Название 5&#39;;</div><div class="code_line">Data[5].text:=&#39;Мой текст 5&#39;;</div><div class="code_line">Data[5].status:=&#39;wait&#39;;</div><div class="code_line">Data[5].item.text.description:=&#39;Описание 6&#39;;</div><div class="code_line">//Data[5] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[5].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[5].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[5].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[5].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[5].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[5] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6].title:=&#39;Название 6&#39;;</div><div class="code_line">Data[6].text:=&#39;Мой текст 6&#39;;</div><div class="code_line">Data[6].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].item.text.description:=&#39;Описание 7&#39;;</div><div class="code_line">//Data[6] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[6].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[6].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[6].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[6].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[6] --&#62; img[0..3] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7].title:=&#39;Название 7&#39;;</div><div class="code_line">Data[7].text:=&#39;Мой текст 7&#39;;</div><div class="code_line">Data[7].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[7] --&#62; img[0..7] ********************************************************</div><div class="code_line">Data[7].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[3].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[4].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[5].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[6].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[7].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[5].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[6].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[7].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[7] --&#62; img[0..7] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8].title:=&#39;Название 8&#39;;</div><div class="code_line">Data[8].text:=&#39;Мой текст 8&#39;;</div><div class="code_line">Data[8].status:=&#39;wait&#39;;</div><div class="code_line">Data[8].item.text.description:=&#39;Описание 9&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[8] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[8].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[8].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[8].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">MaxSet:=5;</div><div class="code_line">&nbsp;</div><div class="code_line">Label1.Caption:=&#39;Макс &#39;+IntToStr(MaxSet)+&#39; сек: &#39;+IntToStr(t);</div><div class="code_line">&nbsp;</div><div class="code_line">//END DATA[8] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[9].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[3].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[9].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//********************************************************</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">//*****************************</div><div class="code_line">//*1 Вариант</div><div class="code_line">//*****************************</div><div class="code_line">&nbsp;&nbsp; //ShowMessage(IntToStr(Node3.Item[4].Count));</div><div class="code_line">&nbsp;&nbsp;with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//Item[Index1].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[2].Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until Node3.Item[4].Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">//*****************************</div><div class="code_line">//*2 Вариант</div><div class="code_line">//*****************************</div><div class="code_line">{case Index1 of</div><div class="code_line">&nbsp;&nbsp; -1: Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;&nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;with Node3.Item[4] do begin // Так лучше, чтобы не было лишней задержки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Index1 &#62;= Count then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := -2; // Потом все равно будет inc(Index1) и значение станет -1. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; inc(Index1);}</div><div class="code_line">//*****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; if FullView then</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1.FullExpand;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FullView:=False;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871500</guid>
        <pubDate>Wed, 13 Jul 2022 23:47:23 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871500</link>
        <description><![CDATA[macomics: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit unit3;</div><div class="code_line">&nbsp;</div><div class="code_line">{$mode objfpc}{$H+}</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,</div><div class="code_line">&nbsp;&nbsp;ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;{ TForm1 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1: TTimer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3: TTreeNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1: LongInt;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{ TForm1 }</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i: LongInt;</div><div class="code_line">&nbsp;&nbsp;m, n: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with TreeView1.Items do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[0]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[0]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[4]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[5]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[6]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[0]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[4]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[5]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[0]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[4]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[5]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := Add(nil, &#39;Data[6]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(n, &#39;Other&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;n := AddChild(n, &#39;img&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[0]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;m := AddChild(n, &#39;index[4]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(m, &#39;&#39;);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TreeView1.FullExpand;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;if Node3 &#60;&#62; nil then Node3.Items[2].Text := &#39;current&#39;; // Установить у Data[0] -&#62; Status = current</div><div class="code_line">&nbsp;&nbsp;for i := 0 to Node3.Items[4].Count - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3.Items[4].Items[i].Items[0].Text := &#39;wait&#39;; // Всем картинкам тоже установить статус wait</div><div class="code_line">&nbsp;&nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp;while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3.Items[2].Items[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := 0 to Node3.Items[4].Count - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Items[4].Items[i].Items[0].Text := &#39;wait&#39;; // Всем картинкам тоже установить статус wait</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;Index1 := -1; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;case Index1 of</div><div class="code_line">&nbsp;&nbsp;-1: Node3.Items[2].Items[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; with Node3.Items[4] do // Так лучше, чтобы не было лишней задержки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Node3.Items[2].Items[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Index1 := -2; // Потом все равно будет inc(Index1) и значение станет -1. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Items[Index1].Items[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;inc(Index1);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">initialization</div><div class="code_line">&nbsp;&nbsp;{$I unit3.lrs}</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div> Вот это у меня точно работает без ошибок. Только не забудьте поправить имя Items на Item.]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871476</guid>
        <pubDate>Wed, 13 Jul 2022 13:48:07 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871476</link>
        <description><![CDATA[Katerina1993: Я опять изменила свой код в соотвествии со своим уровнем вложенности.<br>
Вот пример, без задержки между переходами родительских элементов.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//Item[Index1].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[2].Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until Node3.Item[4].Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp; end;</div></ol></div></div></div></div><br>
<br>
С задержкой между переходами родительских элементов.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;case Index1 of</div><div class="code_line">&nbsp;&nbsp; -1: Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;&nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;with Node3.Item[4] do begin // Так лучше, чтобы не было лишней задержки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Index1 &#62;= Count then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := -2; // Потом все равно будет inc(Index1) и значение станет -1. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; inc(Index1);</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871470</guid>
        <pubDate>Wed, 13 Jul 2022 13:06:11 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871470</link>
        <description><![CDATA[macomics: else пропустил. Там все нормально должно быть вот так<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; Node := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; if Node3 &#60;&#62; nil then Node3.Item[2].Text := &#39;current&#39;; // Установить у Data[0] -&#62; Status = current</div><div class="code_line">&nbsp;&nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Item[2].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for Index1 := 0 to</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;; // Всем картинкам тоже установить статус wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; Index1 := -1; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div><div class="code_line">&nbsp;</div><div class="code_line">// ...</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; case Index1 of</div><div class="code_line">&nbsp;&nbsp; -1: Node3.Item[2].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;with Node3.Item[4] do // Так лучше, чтобы не было лишней задержки.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Index1 &#62;= Count then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := -2; // Потом все равно будет inc(Index1) и значение станет -1. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;&nbsp; inc(Index1);</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871468</guid>
        <pubDate>Wed, 13 Jul 2022 12:49:32 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871468</link>
        <description><![CDATA[Katerina1993: Я сейчас разбираю вот этот код.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;-2: begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;-1: Node3.Item[2].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Index &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//ShowMessage(IntToStr(Index1));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Index1 := -3; // Потом все равно будет inc(Index1) и значение станет -2. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div></ol></div></div></div></div><br>
В процедуре FormShow, добавлен  Index1 := -1;, это значит что Timer прибавит единицу и продолжит с нуля и если например количество картинок у меня 5, то проход по всем картинкам завершится на цифре 4.<br>
Значит вот это условие, никогда не сработает.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if Index1 &#62;= Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Index1 := -3; // Потом все равно будет inc(Index1) и значение станет -2. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div></ol></div></div></div></div><br>
В итоге Index1 продолжает увеличения и сейчас я постоянно получаю ошибку выхода из диапазона.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '> List index out of bounds (0)</div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871385</guid>
        <pubDate>Wed, 13 Jul 2022 06:45:44 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871385</link>
        <description><![CDATA[macomics: Таймер надо останавливать, когда переход к следующему Data не удался (конец списка)<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if Node3 = nil then</div><div class="code_line">&nbsp;&nbsp;Timer1.Enabled := False</div><div class="code_line">else</div><div class="code_line">&nbsp;&nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div></ol></div></div></div></div>А после repeat блок with Node3.Item[2] do begin можно убрать. Он был добавлен только ради сокращения текста.<br>
Но раз не работает, тогда его тоже убирайте.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; //ShowMessage(IntToStr(Node3.Item[4].Count));</div><div class="code_line">&nbsp;&nbsp; with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//Item[Index1].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3.Item[2].Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if Node3 = nil then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until Node3.Item[4].Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871370</guid>
        <pubDate>Wed, 13 Jul 2022 04:28:58 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871370</link>
        <description><![CDATA[Katerina1993: Проверила полностью, ошибка правда в конце появляется, по завершению всех процессов.<br>
<span class="b-attach" data-size="44298" data-hits="90" data-attach-id="63612" data-attach-post-id="3871370">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3871370&amp;attach_id=63612' title='Скачать файл' target='_blank'>screen11.jpg</a> (, : 90)
		</span>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871369</guid>
        <pubDate>Wed, 13 Jul 2022 04:14:58 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871369</link>
        <description><![CDATA[Katerina1993: Вроде получилось, в коде есть некоторая проблема, например в Timer когда проходит итерация, вы используете with Node3.Item[2] do begin, при этом вызываете в дальнейшем text, это понятно так как with присоединяет компонент к свойствам. Однако из-за этого почему-то предыдущий элемент не заменяется на ok, а по прежнему остается current, но если вместо этого:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">with Node3.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;ok&#39;; // У этой Data все картинки закончились. Изменяем статус Data c current на ok одновременно с установкой статуса у последней картинки в ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3); // -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;current&#39;; // У следующей Data изменяем статус из wait в current одновременно с изменением статуса у последней картинки у предыдущей Data и изменением статуса предыдущей Data из current на ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0; // Сброс счетчика картинок</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div></ol></div></div></div></div><br>
Заменить на это, то все работает:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;with Node3.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//Изменила некоторые параметры, так как у меня другой уровень вложенности дерева</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div></ol></div></div></div></div><br>
<br>
В FormShow у меня другой уровень вложенности, поэтому я код изменила.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for Index1 := 0 to Node3.Item[4].Count - 1 do Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1 := 0; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-07-13T04:23:50+00:00">13.07.22, 04:23</time></span></span><br>
Я проверила еще раз на самом деле первоначальный вариант, через repeat ... until был более правильный, потому что без него итерация над картинками происходит только Data[0], потом процесс останавливается. repeat...util, нужно только слегка изменить на основе предыдущего фрагмента кода.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;//ShowMessage(IntToStr(Node3.Item[4].Count));</div><div class="code_line">&nbsp;&nbsp; &nbsp; with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; //Item[Index1].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; if Index1 &#62;= Count then repeat with Node3.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Item[2].Item[0].Text := &#39;current&#39;; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Index1 := Low(0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end until Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871368</guid>
        <pubDate>Tue, 12 Jul 2022 22:37:26 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871368</link>
        <description><![CDATA[macomics: Это все из-за сонного состояния. Набирал в браузере. Естественно не допечатал кусок.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">for Index1 := 0 to Node3.Count - 1 do Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;;</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871367</guid>
        <pubDate>Tue, 12 Jul 2022 22:03:23 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871367</link>
        <description><![CDATA[Katerina1993: Я сейчас посмотрел несколько сайтов по конструкции FOR почитала документацию и не нашла пример такой конструкции.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">for Index1 := 0 to Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;;</div></ol></div></div></div></div><br>
Вы уверены, что здесь нет ошибки. Может такая конструкция используется в более поздней версии Delphi но у меня выдает ошибку.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>[Error] Unit1.pas(115): Incompatible types: &#39;Integer&#39; and &#39;procedure, untyped pointer or untyped parameter&#39;</div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871364</guid>
        <pubDate>Tue, 12 Jul 2022 21:32:40 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871364</link>
        <description><![CDATA[macomics: Добавьте к коду запуска таймера следующий фрагмент.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;Node := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then Node3.Item[2].Text := &#39;current&#39;; // Установить у Data[0] -&#62; Status = current</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Item[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for Index1 := 0 to Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;; // Всем картинкам тоже установить статус wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1 := 0; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div></ol></div></div></div></div>А в функции таймера все статусы будут последовательно переписаны на ok<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;with Node3.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;ok&#39;; // У этой Data все картинки закончились. Изменяем статус Data c current на ok одновременно с установкой статуса у последней картинки в ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3); // -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;current&#39;; // У следующей Data изменяем статус из wait в current одновременно с изменением статуса у последней картинки у предыдущей Data и изменением статуса предыдущей Data из current на ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index1 := 0; // Сброс счетчика картинок</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div></ol></div></div></div></div>А так можно сделать, если надо чтобы между изменениями статуса последней картинки, изменением статуса Data и изменением статуса следующей Data тоже были задержки<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;Node := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then Node3.Item[2].Text := &#39;current&#39;; // Установить у Data[0] -&#62; Status = current</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;while Node3 &#60;&#62; nil do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3.Item[0].Text := &#39;wait&#39;; // У все последующих сбросить статус в wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for Index1 := 0 to Node3.Item[4].Item[Index1].Item[0].Text := &#39;wait&#39;; // Всем картинкам тоже установить статус wait</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Index1 := -1; // Установить начальные значения индексных переменных</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Node3 &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Timer1.Enabled := True; // Запустить таймер</div><div class="code_line">&nbsp;</div><div class="code_line">// ...</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;-2: begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3.Item[2].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;-1: Node3.Item[2].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if Index &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Item[Index1].Item[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Index1 &#62;= Count then Index1 := -3; // Потом все равно будет inc(Index1) и значение станет -2. Как раз первый вариант case Index1 of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871346</guid>
        <pubDate>Tue, 12 Jul 2022 20:04:50 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871346</link>
        <description><![CDATA[Katerina1993: Почти получилось, пришлось переделать индексы под свой вариант иначе выдовало ошибку, однако при прохожде картинок когда завершается цикл и происходи переход на следующую data, все равно статус у предыдущего элемента (родителя) остается current, хотя автоматически должен быть ok. <br>
<br>
Однако если убрать эту строчку (она указана стрелкой в коде), то программа присваивает предыдущему значению ok. Хотя последовательность действий нужно сделать так сначала wait, потом когда дойдет очередь до элемента (родителя) current и только после прохождения всех итераций в родительском элементе сделать статус ok. Я не знаю может следует добавить еще какое-нибудь условие?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">with Node3.Item[4] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Index1 &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index1].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; //Item[Index1].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; inc(Index1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; if Index1 &#62;= Count then repeat with Node3.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[0].Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node3 := Node3.GetNextChild(Node3); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[0].Text := &#39;current&#39;; &#60;--- ВОТ ЭТУ СТРОЧКУ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Index1 := Low(0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end until Count &#62; 0;</div><div class="code_line">&nbsp;&nbsp;end;</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871314</guid>
        <pubDate>Tue, 12 Jul 2022 17:05:51 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871314</link>
        <description><![CDATA[macomics: Тогда просто присваивайте 0 вместо Low(Node.Item).]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871313</guid>
        <pubDate>Tue, 12 Jul 2022 16:47:50 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871313</link>
        <description><![CDATA[Katerina1993: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Low(Node.Item)</div></div><br>
Не работает, я уже создала новый проект, чтобы протестировать отдельно эту функцию.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, ComCtrls, StdCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Button1: TButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Node1:TTreeNode;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Node1 := TreeView1.Items.GetFirstNode;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">ShowMessage(IntToStr(Low(Node1.Item)));</div><div class="code_line">ShowMessage(Node1.Item[1].text);</div><div class="code_line">Node1 := Node1.GetNextChild(Node1);</div><div class="code_line">if Node1 = nil then Button1.Enabled := False;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
Получаю сообщение об ошибке.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
[Error] Unit1.pas(36): &#39;[&#39; expected but &#39;)&#39; found<br>
</div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871310</guid>
        <pubDate>Tue, 12 Jul 2022 15:51:34 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871310</link>
        <description><![CDATA[macomics: Так в чем собственно проблема. Вместе с Node определяете переменную Index типа Integer и в ней осуществляете проход по картинкам.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with Node.Item[3] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Index &#60; Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Item[Index].Item[1].Text := &#39;ok&#39;; // Data[Node] -&#62; Img -&#62; Big[Index] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp;inc(Index);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Index &#62;= Count then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;with Node.Item[2] do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;ok&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Node := Node.GetNextChild(Node); // Data[Node++] -- Переходим к следующей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text := &#39;current&#39;; // Data[Node] -&#62; Status</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Index := Low(Node.Item);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until Count &#62; 0; // Пройти все Data[Node], у которых нет картинок, без задержки.</div><div class="code_line">// Чтобы на каждой Data[Node] Без картинок задержаться на 1 интервал таймера просто</div><div class="code_line">// уберите цикл repeat ... until Count &#62; 0 оставив внутреннее содержимое без цикла.</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div>Перед запуском таймера надо сделать так<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Node := TreeView1.Items.GetFirstNode;</div><div class="code_line">Node.Item[2].Text := &#39;current&#39;;</div><div class="code_line">Index := Low(Node.Item);</div><div class="code_line">Timer1.Enabled := True; // Запустили таймер</div></ol></div></div></div></div>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871309</guid>
        <pubDate>Tue, 12 Jul 2022 15:24:11 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871309</link>
        <description><![CDATA[Katerina1993: Создала еще вложенный дочерний элемент под название img, в нем будет содержаться данные о некоторых картинках, ключевое слово big(будет еще small, т.е. два варианта). Количество big в Data[0..9] означает количество изображений. Пример на картинке.<br>
<span class="b-attach" data-size="33307" data-hits="110" data-attach-id="63608" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=63608' title='Скачать файл' target='_blank'>screen8.jpg</a> (, : 110)
		</span><br>
У big есть два параметра type1 и wait. Wait – это что-то вроде status, у родительского элемента data. Здесь он будет принимать два параметра wait и ok. Мне нужно запустить дополнительные цикл, который будет проходить по всем изображением внутри всех родительских элементов Data[0..9] и ставить ok. Только это процедура должна проходить соблюдая чередность, сначала везде проставиться ok у картинок Data[0], закончив устанавливать параметр у картинок Data[0], переходить к Data[1] и т.д. Интервал прохождения одна секунда, если 5 изображений то время затрачено 5 секунд.<br>
<br>
На счет статуса (status) Data, он будет принимать три параметра ok, wait и current. Большинство из них параметр wait, как на скриншоте.<br>
<span class="b-attach" data-size="37745" data-hits="102" data-attach-id="63609" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=63609' title='Скачать файл' target='_blank'>screen9.jpg</a> (, : 102)
		</span><br>
После завершения прохода одного из родительского элемента ему автоматически присваивается status ok. <br>
<br>
При переходе на следующий уровень Data[1] или Data[2] им присваивается статус– current (текущий), он может быть один в дереве, пока идет процесс текущего родительского объекта. Это можно увидеть на картинке ниже.<br>
<span class="b-attach" data-size="37567" data-hits="98" data-attach-id="63610" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=63610' title='Скачать файл' target='_blank'>screen10.jpg</a> (, : 98)
		</span> <br>
После прохождения по картинкам, статус меняется на “ok”, т.е. процесс завершен. Разумеется само дерево было сделано для наглядности, в основном все переменные я собираюсь хранить в массиве (record). Как мне примерно сделать такие проходы много-уровневые с изменением статуса? <br>
Вот мой код:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, StdCtrls, ComCtrls, ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1: TTimer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label1: TLabel;</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp; &nbsp;vetka,text,data1,item1,Node,Node3: TTreeNode;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TText=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;description: String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TItem=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;text: TText;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TSmall=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; status:String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; width:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; height:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; type1:String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TBig=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; status:String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; width:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; height:Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; type1:String;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TImage=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;big:TBig;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;small:TSmall;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TIndex=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; title : String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; text: String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; status : String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; item:TItem;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; img:array of TImage;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;type</div><div class="code_line">&nbsp;&nbsp; &nbsp;TData = array of TIndex;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Data: TData;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;st: String;</div><div class="code_line">&nbsp;&nbsp;t:Integer = 0;</div><div class="code_line">&nbsp;&nbsp;Index:Integer = 0;</div><div class="code_line">&nbsp;&nbsp;MaxSet:Integer=0;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Пример записи в массив</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">var i,j: Integer;</div><div class="code_line">vetka,text,data1,item1,Node,Node1,Node2: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;for I := Low(Data) to High(Data) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; data1:=TreeView1.Items.Add(nil,&#39;Data[&#39;+IntToStr(i)+&#39;]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Title&#39;+IntToStr(i+1));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].title);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Text&#39;+IntToStr(i+1));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].text);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;Status&#39;+IntToStr(i+1));</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].status);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(data1,&#39;item0&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,&#39;Text&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node, &#39;Description&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node,Data[i].item.text.description);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Node1:=TreeView1.Items.AddChild(data1,&#39;img&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for J := Low(Data[i].img) to High(Data[i].img) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node2:=TreeView1.Items.AddChild(Node1,&#39;big&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.status);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Node:=TreeView1.Items.AddChild(Node2,Data[i].img[j].big.type1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;Node3 := TreeView1.Items.GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">//В ДОКУМЕНТЕ МАССИВ СОСТОИТ ИЗ 10 ЭЛЕМЕНТОВ, устанавливаем SetLength.</div><div class="code_line">SetLength(Data,9);</div><div class="code_line">&nbsp;</div><div class="code_line">//Резервируем место для нового массива где будут хранится дополнительные данные</div><div class="code_line">//ДОПОЛНИТЕЛЬНЫЕ ДАННЫЕ ПОМЕЧЕНЫ КОММЕНТАРИИ НИЖЕ</div><div class="code_line">SetLength(Data[0].img,5);</div><div class="code_line">SetLength(Data[1].img,3);</div><div class="code_line">SetLength(Data[2].img,4);</div><div class="code_line">SetLength(Data[3].img,2);</div><div class="code_line">SetLength(Data[4].img,7);</div><div class="code_line">SetLength(Data[5].img,3);</div><div class="code_line">SetLength(Data[6].img,4);</div><div class="code_line">SetLength(Data[7].img,8);</div><div class="code_line">SetLength(Data[8].img,3);</div><div class="code_line">SetLength(Data[9].img,4);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].title:=&#39;Название&#39;;</div><div class="code_line">Data[0].text:=&#39;Мой текст&#39;;</div><div class="code_line">Data[0].status:=&#39;current&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].item.text.description:=&#39;Описание 1&#39;;</div><div class="code_line">//Data[0] --&#62; img[0..4] ********************************************************</div><div class="code_line">Data[0].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[0].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[0].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[0].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">Data[0].img[4].big.type1:=&#39;test5&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[0].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[0].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[0] --&#62; img[0..4]*****************************************************</div><div class="code_line">Data[1].title:=&#39;Название 1&#39;;</div><div class="code_line">Data[1].text:=&#39;Мой текст 1&#39;;</div><div class="code_line">Data[1].status:=&#39;wait&#39;;</div><div class="code_line">Data[1].item.text.description:=&#39;Описание 2&#39;;</div><div class="code_line">//Data[1] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[1].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[1].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[1].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[1].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[1].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[1].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[1] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].title:=&#39;Название 2&#39;;</div><div class="code_line">Data[2].text:=&#39;Мой текст 2&#39;;</div><div class="code_line">Data[2].status:=&#39;wait&#39;;</div><div class="code_line">Data[2].item.text.description:=&#39;Описание 3&#39;;</div><div class="code_line">//Data[2] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[2].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[2].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[2].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[2].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[2].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[2].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[2] --&#62; img[0..3] ****************************************************</div><div class="code_line">Data[3].title:=&#39;Название 3&#39;;</div><div class="code_line">Data[3].text:=&#39;Мой текст 3&#39;;</div><div class="code_line">Data[3].status:=&#39;wait&#39;;</div><div class="code_line">Data[3].item.text.description:=&#39;Описание 4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[3] --&#62; img[0..1] ********************************************************</div><div class="code_line">Data[3].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[3].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[3].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[3].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[3] --&#62; img[0..1] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].title:=&#39;Название 4&#39;;</div><div class="code_line">Data[4].text:=&#39;Мой текст 4&#39;;</div><div class="code_line">Data[4].status:=&#39;wait&#39;;</div><div class="code_line">Data[4].item.text.description:=&#39;Описание 5&#39;;</div><div class="code_line">//Data[4] --&#62; img[0..6] ********************************************************</div><div class="code_line">Data[4].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[4].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[4].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[4].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">Data[4].img[4].big.type1:=&#39;test5&#39;;</div><div class="code_line">Data[4].img[5].big.type1:=&#39;test6&#39;;</div><div class="code_line">Data[4].img[6].big.type1:=&#39;test7&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[4].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[5].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[4].img[6].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[4] --&#62; img[0..6] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].title:=&#39;Название 5&#39;;</div><div class="code_line">Data[5].text:=&#39;Мой текст 5&#39;;</div><div class="code_line">Data[5].status:=&#39;wait&#39;;</div><div class="code_line">Data[5].item.text.description:=&#39;Описание 6&#39;;</div><div class="code_line">//Data[5] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[5].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[5].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[5].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[5].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[5].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[5].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[5] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6].title:=&#39;Название 6&#39;;</div><div class="code_line">Data[6].text:=&#39;Мой текст 6&#39;;</div><div class="code_line">Data[6].status:=&#39;wait&#39;;</div><div class="code_line">Data[6].item.text.description:=&#39;Описание 7&#39;;</div><div class="code_line">//Data[6] --&#62; img[0..3] ********************************************************</div><div class="code_line">Data[6].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[6].img[1].big.type1:=&#39;test2&#39;;</div><div class="code_line">Data[6].img[2].big.type1:=&#39;test3&#39;;</div><div class="code_line">Data[6].img[3].big.type1:=&#39;test4&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[6].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[6].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[6] --&#62; img[0..3] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7].title:=&#39;Название 7&#39;;</div><div class="code_line">Data[7].text:=&#39;Мой текст 7&#39;;</div><div class="code_line">Data[7].status:=&#39;wait&#39;;</div><div class="code_line">Data[7].item.text.description:=&#39;Описание 8&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[7] --&#62; img[0..7] ********************************************************</div><div class="code_line">Data[7].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[3].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[4].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[5].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[6].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[7].img[7].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[7].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[4].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[5].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[6].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[7].img[7].big.status:=&#39;wait&#39;;</div><div class="code_line">//END DATA[7] --&#62; img[0..7] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8].title:=&#39;Название 8&#39;;</div><div class="code_line">Data[8].text:=&#39;Мой текст 8&#39;;</div><div class="code_line">Data[8].status:=&#39;wait&#39;;</div><div class="code_line">Data[8].item.text.description:=&#39;Описание 9&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[8] --&#62; img[0..2] ********************************************************</div><div class="code_line">Data[8].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">Data[8].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Data[8].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[8].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">Data[8].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">MaxSet:=5;</div><div class="code_line">&nbsp;</div><div class="code_line">Label1.Caption:=&#39;Макс &#39;+IntToStr(MaxSet)+&#39; сек: &#39;+IntToStr(t);</div><div class="code_line">&nbsp;</div><div class="code_line">//END DATA[8] --&#62; img[0..2] ****************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[9].img[0].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[1].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[2].big.type1:=&#39;test1&#39;;</div><div class="code_line">//Data[9].img[3].big.type1:=&#39;test1&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//Data[9].img[0].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[1].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[2].big.status:=&#39;wait&#39;;</div><div class="code_line">//Data[9].img[3].big.status:=&#39;wait&#39;;</div><div class="code_line">//********************************************************</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">inc(t);</div><div class="code_line">if t&#62;MaxSet then</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inc(Index);</div><div class="code_line">&nbsp;&nbsp;t:=1;</div><div class="code_line">&nbsp;&nbsp;Node3.Item[2].Item[0].text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp;Node3 := Node3.GetNextChild(Node3);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">Label1.Caption:=&#39;Макс &#39;+IntToStr(MaxSet)+&#39; сек: &#39;+IntToStr(t);</div><div class="code_line">&nbsp;</div><div class="code_line">if Node3 = nil then Timer1.Enabled := False;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871277</guid>
        <pubDate>Tue, 12 Jul 2022 11:50:42 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871277</link>
        <description><![CDATA[macomics: Действительно отличаются. Откопал свою старую книгу, по которой начинал изучать Delphi 7 и там у TTreeNode описан массив Item, а в Lazarus под Linux Item<strong class='tag-b'>s</strong>. Но это не страшно.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=428534&view=findpost&p=3871276'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Katerina1993 &#064; <time class="tag-quote__quoted-time" datetime="2022-07-12T11:25:26+00:00">12.07.22, 11:25</time></span><div class='quote '>Цитата<br>
Node.Item[2].Item[0].Text := &#39;ok&#39;;<br>
<br>
Так как у меня не Lazarus, а Delphi7. </div></div><br>
Вот поэтому то я и упомянул Lazarus. Я знаю, что у вас Delphi 7.]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871276</guid>
        <pubDate>Tue, 12 Jul 2022 11:25:26 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871276</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'>macomics</strong>, ваш пример заработал, Node я определяю также:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Node: TTreeNode;</div></div><br>
Единственное отличие свойство Items нужно заменить на Item. Вот так:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '> Node.Item[2].Item[0].Text := &#39;ok&#39;;</div></div><br>
Так как у меня не Lazarus, а Delphi7.]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871265</guid>
        <pubDate>Tue, 12 Jul 2022 09:47:54 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871265</link>
        <description><![CDATA[macomics: <s class='tag-s'>Да да. В браузере набирал. Лишняя буква s в конце у Node.Item.</s> Возможно в Lazarus свойства чуть отличаются. Как вы определяете Node? У меня вот так вот работает<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">{$mode objfpc}{$H+}</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,</div><div class="code_line">&nbsp;&nbsp;ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;{ TForm1 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Timer1: TTimer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TreeView1: TTreeView;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Timer1Timer(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node: TTreeNode;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{ TForm1 }</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i: LongInt;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;with TreeView1.Items do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[1]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[2]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[3]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[4]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[5]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := Add(nil, &#39;Data[6]&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Title1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;Text1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := AddChild(Node, &#39;Status&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;AddChild(Node, &#39;wait&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Node := GetFirstNode;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;TreeView1.FullExpand;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Timer1Timer(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Node.Items[2].Items[0].Text := &#39;ok&#39;;</div><div class="code_line">&nbsp;&nbsp;Node := Node.GetNextChild(Node);</div><div class="code_line">&nbsp;&nbsp;if Node = nil then Timer1.Enabled := False;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">initialization</div><div class="code_line">&nbsp;&nbsp;{$I unit3.lrs}</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<span class="b-attach" data-size="17362" data-hits="91" data-attach-id="63607" data-attach-post-id="3871265">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3871265&amp;attach_id=63607' title='Скачать файл' target='_blank'>TreeView1.png</a> (, : 91)
		</span>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871259</guid>
        <pubDate>Tue, 12 Jul 2022 09:18:16 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871259</link>
        <description><![CDATA[Katerina1993: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>TreeView1.TopItem.getNextSibling.Item[2].Item[0].text:=&#39;ok&#39;;</div></div><br>
Поменять параметры &quot;индекса&quot; не получается при попытке выдает ошибку:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>List Index out of bounds (1)</div></div><br>
Это фиксированные параметры индекса, которые не меняются. Моя цель, чтобы в таймере каждую секунду проходился про древовидному списку и менял значение на ok, разумеется через таймер. Количество данных практически одинаковое.<br>
Дерево на картинке:<br>
<span class="b-attach" data-size="34704" data-hits="111" data-attach-id="63606" data-attach-post-id="3871259">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3871259&amp;attach_id=63606' title='Скачать файл' target='_blank'>screen7.jpg</a> (, : 111)
		</span>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871248</guid>
        <pubDate>Tue, 12 Jul 2022 09:04:28 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871248</link>
        <description><![CDATA[Krid: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TreeView1.TopItem.getNextSibling.Item[2].Item[0].text:=&#39;ok&#39;;</div></ol></div></div></div></div>]]></description>
        <author>Krid</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871243</guid>
        <pubDate>Tue, 12 Jul 2022 08:43:52 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871243</link>
        <description><![CDATA[Katerina1993: У Node нет свойства Items (список на картинке).<br>
<span class="b-attach" data-size="14997" data-hits="95" data-attach-id="63605" data-attach-post-id="3871243">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3871243&amp;attach_id=63605' title='Скачать файл' target='_blank'>screen6.jpg</a> (, : 95)
		</span>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871238</guid>
        <pubDate>Tue, 12 Jul 2022 08:24:20 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871238</link>
        <description><![CDATA[macomics: Это все потому, что вы обращаетесь со TreeView как с массивом. Хотя элементы в Items и индексируются линейно, но они организованы в древовидную структуру и не привязаны к индексам в Items строго. Для работы с элементами описанной мной ранее структуры попробуйте сделать так.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Node := TreeView1.Items.GetFirstNode; // Data[1]</div><div class="code_line">// &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^-- В этом Items элементы индексируются линейно вне зависимости от уровня вложенности. GetFirstNode вернет старший корневой элемент.</div><div class="code_line">Caption := Node.Item[1].Item[2].Text; // Data[1] -&#62; Item2 -&#62; Item3</div></ol></div></div></div></div><br>
А вот элементы в объекте Node.Item уже представляют из себя массив дочерних элементов без вложений.]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871230</guid>
        <pubDate>Tue, 12 Jul 2022 07:34:54 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871230</link>
        <description><![CDATA[Katerina1993: Как поменять данные в дереве изменив только один Index. Допустим у меня данные однотипные и структура выглядит как массив, соответственно в каждом родителе содержатся одинаковы набор данных. Мне нужно изменить скажем во втором родителе, один текст. Я пыталась сделать это вот так.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TreeView1.Items[1].Item[2].Item[0].Text:=&#39;ok&#39;;</div><div class="code_line">&nbsp;//Где Items[1] - массив Data1</div><div class="code_line">&nbsp;//Item[2] - массив Status</div><div class="code_line">&nbsp;//Item[0] - текст</div></ol></div></div></div></div><br>
В итоге я получаю ошибку.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>List Index out of bounds (1)</div></div><br>
Как мне изменить данные, поменяв только один Index, допустим вот здесь.<br>
<br>
<span class="b-attach" data-size="21431" data-hits="104" data-attach-id="63604" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=63604' title='Скачать файл' target='_blank'>screen5.jpg</a> (, : 104)
		</span>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871218</guid>
        <pubDate>Mon, 11 Jul 2022 22:17:18 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871218</link>
        <description><![CDATA[macomics: Вот так можно перечислить Node одного уровня без проверки Level<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Node := Node.GetNextChild(Node);</div></ol></div></div></div></div>При инициализации Node как <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Node := TreeView1.Itemsю.GetFirstNode;</div><div class="code_line">repeat</div><div class="code_line">// Действия над текущим Node</div><div class="code_line">&nbsp;&nbsp;Node := Node.GetNextChild(Node);</div><div class="code_line">until Node = nil;</div></ol></div></div></div></div> будут перечислены элементы Data[1], Data[2], Data[3], Data[4], Data[5] Data[6].]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871217</guid>
        <pubDate>Mon, 11 Jul 2022 22:01:25 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871217</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'>macomics</strong>, спасибо после вашего примера я сразу поняла как выводить через цикл.]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871216</guid>
        <pubDate>Mon, 11 Jul 2022 21:47:07 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871216</link>
        <description><![CDATA[macomics: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Node: TTreeNode;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Node := TreeView1.Items.Add(nil, &#39;Data[1]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item1&#39;); // Data[1] -&#62; Item1</div><div class="code_line">&nbsp;&nbsp;Node := TreeView1.Items.AddChild(Node, &#39;Item2&#39;); // Data[1] -&#62; Item2</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item1&#39;); // Data[2] -&#62; Item2 -&#62; Item1</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item2&#39;); // Data[2] -&#62; Item2 -&#62; Item2</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item3&#39;); // Data[2] -&#62; Item2 -&#62; Item3</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item4&#39;); // Data[2] -&#62; Item2 -&#62; Item4</div><div class="code_line">&nbsp;&nbsp;Node := TreeView1.Items.Add(nil, &#39;Data[2]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item1&#39;); // Data[2] -&#62; Item1</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item2&#39;); // Data[2] -&#62; Item2</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(nil, &#39;Data[3]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item3&#39;); // Data[2] -&#62; Item3</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item4&#39;); // Data[2] -&#62; Item4</div><div class="code_line">&nbsp;&nbsp;Node := TreeView1.Items.Add(nil, &#39;Data[4]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(nil, &#39;Data[5]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item1&#39;); // Data[4] -&#62; Item1</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item2&#39;); // Data[4] -&#62; Item2</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(nil, &#39;Data[6]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item3&#39;); // Data[4] -&#62; Item3</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.AddChild(Node, &#39;Item4&#39;); // Data[4] -&#62; Item4</div><div class="code_line">end;</div></ol></div></div></div></div>Вот так получится то, что вам надо. Вот так выглядит.<br>
<span class="b-attach" data-size="21235" data-hits="108" data-attach-id="63603" data-attach-post-id="3871216">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3871216&amp;attach_id=63603' title='Скачать файл' target='_blank'>TTreeView.png</a> (, : 108)
		</span>]]></description>
        <author>macomics</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871206</guid>
        <pubDate>Mon, 11 Jul 2022 16:09:05 +0000</pubDate>
        <title>Как добавить дочерний элемент threeview?</title>
        <link>https://forum.sources.ru/index.php?showtopic=428534&amp;view=findpost&amp;p=3871206</link>
        <description><![CDATA[Katerina1993: Мне нужно добавить дочерний элемент в список. Перепробовала много вариантов.<br>
Вот простой код (потом я собираюсь добавлять элементы через цикл).<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//РОДИТЕЛЬСКИЕ ЭЛЕМЕНТЫ</div><div class="code_line">TreeView1.Items.Add(Node, &#39;Data[1]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(Node, &#39;Data[2]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(Node, &#39;Data[3]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(Node, &#39;Data[4]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(Node, &#39;Data[5]&#39;);</div><div class="code_line">&nbsp;&nbsp;TreeView1.Items.Add(Node, &#39;Data[6]&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; if TreeView1.Items.Item[0].Level = 0 then</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; item := TreeView1.Items.Item[0];</div><div class="code_line">&nbsp;&nbsp; &nbsp; TreeView1.Items.AddChild(item, &#39;Item1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; TreeView1.Items.AddChild(item, &#39;Item2&#39;);</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; if TreeView1.Items.Item[1].Level = 0 then</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; item := TreeView1.Items.Item[1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; TreeView1.Items.AddChild(item, &#39;Item1&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; TreeView1.Items.AddChild(item, &#39;Item2&#39;);</div><div class="code_line">&nbsp;&nbsp; end;</div></ol></div></div></div></div><br>
<br>
Нужно добавлять в первый и второй родительский элемент, но добавляется почему-то только первый, если убрать первое условие, где проверка осуществляется на уровень первого элемента, то добавляется во второй родительский элемент, стоит вернуть первое условие, то добавление происходит в первый родительский элемент. Как сделать добавление в первое и второй родительский элемент? Потом я буду это выводить в цикле. Также мне важно знать как добавить в дочерний элементы (созданные в родительских элементах) еще одни дочернии элементы. Пример на картинке.<br>
<br>
<span class="b-attach" data-size="11486" data-hits="13" data-attach-id="63599" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=63599' title='Скачать файл' target='_blank'>screen4.jpg</a> (, : 13)
		</span>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	