<?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=427819&amp;view=findpost&amp;p=3868830</guid>
        <pubDate>Wed, 15 Jun 2022 12:30:29 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868830</link>
        <description><![CDATA[macomics: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Gonarh</span><div class='quote '>Кроме того, нахрена два цикла, приучайся сразу писать нормальный код, за плохой, будут бить по рукам.</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">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i,j:Integer;</div><div class="code_line">begin</div><div class="code_line">// Циклическое изменение длины массива тоже не лучший вариант кода, порождающий не нужное</div><div class="code_line">// большое количество копирований элементов массива в массив большей длины</div><div class="code_line">&nbsp;&nbsp;SetLength(tmpItem, Length(Item1)); // Предполагаем, что нет в Item1 элементов empty</div><div class="code_line">&nbsp;&nbsp;j:=Low(tmpItem); // Для простоты работы с индексами стоит использовать Low и High</div><div class="code_line">&nbsp;&nbsp;for i:=Low(Item1) to High(Item1) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Item1[i]&#60;&#62;&#39;empty&#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;tmpItem[j] := Item1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(j);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">// Теперь уменьшим массив до нужного размера. Эта операция не должна породить операцию копирования</div><div class="code_line">// Усечение блока до меньшего размера не требует копирования элементов в новый блок</div><div class="code_line">// Даже если в реализации Delphi копирование элементов и будет, то они не будут выполняться циклически</div><div class="code_line">&nbsp;&nbsp;SetLength(tmpItem, j - Low(tmpItem) + 1);</div><div class="code_line">// Немного математики: x: array [-5 .. 4] of ee;</div><div class="code_line">// &nbsp;e0 e1 e2 e3 e4 e5 e6 e7 e8 e9</div><div class="code_line">// &nbsp;-5 -4 -3 -2 -1 &nbsp;0 &nbsp;1 &nbsp;2 &nbsp;3 &nbsp;4</div><div class="code_line">// &nbsp;Low(x) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;j -&#62; 4 - (-5) + 1 = 10</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><hr><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>RusSun</span><div class='quote '>May be like this ...</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">&nbsp;&nbsp;for i := High(Item1) downto 0 do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;j := Random(i + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := Item1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[i] := Item1[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[j] := s;</div><div class="code_line">&nbsp;&nbsp; &nbsp;inc(k);</div><div class="code_line">&nbsp;&nbsp; &nbsp;slot1[k]:=Item1[k]; // Необходимо добавить первые 5, а если при i = 4 функция Random(i + 1) вернет значение 2</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1.Lines.Add(slot1[k]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if k = 4 &nbsp;then break</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div><hr><strong class='tag-b'>Katerina1993</strong>: Для выбора 5 случайных достаточно сделать так<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;i, j: Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;&nbsp;SetLength(slot1, 5);</div><div class="code_line">&nbsp;&nbsp;j := Length(Item1);</div><div class="code_line">&nbsp;&nbsp;for i := Low(Slot1) to High(Slot1) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Slot1[i] := Item1[Random(j - Low(Item1)) + Low(Item1)];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1.Lines.Add(Slot[i]);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div>Для выбора 5 случайных без повторений<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;i, j, k, l, m: Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;&nbsp;SetLength(slot1, 5);</div><div class="code_line">&nbsp;&nbsp;j := Length(Item1);</div><div class="code_line">// Это преобразование нужно для того случая, когда Low(Item1) &#60;&#62; Low(Slot1)</div><div class="code_line">// Оно добавлено для демонстрации и в конечном итоге может быть убрано</div><div class="code_line">// Но! Массив Item1 вы задаете константно и индексы в нем могут отличаться от</div><div class="code_line">// индексов в динамическом массиве, хотя индексы в динамическом массиве</div><div class="code_line">// всегда находятся в диапазоне [0 .. Length - 1].</div><div class="code_line">// В общем виде переход от диапазона индексов [A .. B] к диапазону [C .. D]</div><div class="code_line">// показан в этом примере. Т.к. у динамического массива Low(Slot1) = 0, то</div><div class="code_line">// как минимум это значение можно убрать.</div><div class="code_line">&nbsp;&nbsp;l := Low(Item1) + Low(Slot1);</div><div class="code_line">&nbsp;&nbsp;m := Low(Item1) - Low(Slot1);</div><div class="code_line">&nbsp;&nbsp;for i := Low(Slot1) to High(Slot1) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;k := Random(j - i - l) + l; // Выбор значения из диапазона [Low(Item1) + i .. Length(Item1) - 1]</div><div class="code_line">&nbsp;&nbsp; &nbsp;Slot1[i] := Item1[i + k]; // Переставляем это значение в начало массива Item1[i] и сохраняем его в Slot1[i]</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[i + k + m] := Item1[i + m]; // На следующем проходе цикла это значение не будет затронуто</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[i + m] := Slot1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1.Lines.Add(Slot[i]); // Его сразу можно добавить в Memo1</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=427819&amp;view=findpost&amp;p=3868762</guid>
        <pubDate>Wed, 15 Jun 2022 05:32:50 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868762</link>
        <description><![CDATA[RusSun: <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;i,j: Integer;</div><div class="code_line">&nbsp;&nbsp;e1,e2: Integer; //for each index</div><div class="code_line">&nbsp;&nbsp;s: string; //bufstr</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;SetLength(slot1, 5);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;j:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := High(Item1) downto 0 do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp;e1:=random(High(Item1)+1); &nbsp;//random number in group 0..19</div><div class="code_line">&nbsp;&nbsp;e2:=random(High(Item1)+1); &nbsp;//random number in group 0..19</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := Item1[e1];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[e1] := Item1[e2];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[e2] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; if j in [1..5] then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; slot1[j-1]:=Item1[i]; &nbsp;//Get current Item</div><div class="code_line">&nbsp;&nbsp; Memo1.Lines.Add( intTostr(j)+&#39;) &#39;+Item1[i]) &nbsp;//Add to memo1 &quot;to see it&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; inc(j);</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">end;</div></ol></div></div></div></div><br>
<br>
May be like this ...<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">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;i, j,k: Integer;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;SetLength(slot1, 5);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;&nbsp;k:=-1;</div><div class="code_line">&nbsp;&nbsp;for i := High(Item1) downto 0 do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;j := Random(i + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := Item1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[i] := Item1[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[j] := s;</div><div class="code_line">&nbsp;&nbsp; &nbsp;inc(k);</div><div class="code_line">&nbsp;&nbsp; &nbsp;slot1[k]:=Item1[k];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1.Lines.Add(slot1[k]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if k = 4 &nbsp;then break</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
 :D]]></description>
        <author>RusSun</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868254</guid>
        <pubDate>Fri, 10 Jun 2022 11:48:56 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868254</link>
        <description><![CDATA[Gonarh: Нет там перемешивания, есть перезатирание. Второй массив участвует только в выводе, а третий вообще не используется.]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868250</guid>
        <pubDate>Fri, 10 Jun 2022 11:06:59 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868250</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'>Gonarh</strong>, здравствуйте я тут сделала перемешивание объектов основного массива и добавление первых пяти случайных элементов во второй массив. У меня опять получилось два цикла. Подскажите можно как-нибудь также записать в один цикл перемешивание и добавление как в предыдущем примере.<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, Math;</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;Memo1: TMemo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(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">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;slot1:Array of String;</div><div class="code_line">&nbsp;&nbsp;Item1: Array[0..19] of String = (&#39;Thread&#39;,&#39;Goblet&#39;,&#39;Stick&#39;,&#39;Doorknob&#39;,&#39;Loupe&#39;,&#39;Statuette&#39;,&#39;Ring&#39;,</div><div class="code_line">&nbsp;&nbsp;&#39;Crown&#39;,&#39;Vase&#39;,&#39;Gripsack&#39;,&#39;Book&#39;,&#39;Glove&#39;,&#39;Salver&#39;,&#39;Brush&#39;,&#39;Handbell&#39;,&#39;Cigarcase&#39;,&#39;Lantern&#39;,&#39;Card&#39;,&#39;Candy&#39;,</div><div class="code_line">&nbsp;&nbsp;&#39;Whisk&#39;);</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;&nbsp;arr:Array of String;</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;&nbsp; //Шпаргалка</div><div class="code_line">// до ближайшего большего целого:</div><div class="code_line">//A := Ceil(15.15); // A = 16</div><div class="code_line">//В := Ceil(15.95); // В = 16</div><div class="code_line">&nbsp;</div><div class="code_line">// до ближайшего меньшего целого:</div><div class="code_line">//A := Floor(15.15); // A = 15</div><div class="code_line">//В := Floor(15.95); // В = 15</div><div class="code_line">&nbsp;</div><div class="code_line">// по математическим правилам до ближайшего целого:</div><div class="code_line">//A := Round(15.15); // A = 15</div><div class="code_line">//B := Round(15.95); // B = 16</div><div class="code_line">//C := Round(15.5); // C = 16</div><div class="code_line">//D := Round(15.4999); // D = 15</div><div class="code_line">&nbsp;</div><div class="code_line">// отбрасывание дробной части</div><div class="code_line">//A := Trunc(15.15); // A = 15</div><div class="code_line">//В := Trunc(15.95); // В = 15</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;i, j,k: Integer;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;SetLength(slot1, 5);</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;&nbsp;for i := High(Item1) downto 0 do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;j := Random(i + 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := Item1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[i] := Item1[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp;Item1[j] := s;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for k:=0 to High(slot1) do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; slot1[k]:=Item1[k];</div><div class="code_line">&nbsp;&nbsp; &nbsp; Memo1.Lines.Add(slot1[k])</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">begin</div><div class="code_line">Randomize;</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=427819&amp;view=findpost&amp;p=3868158</guid>
        <pubDate>Thu, 09 Jun 2022 17:53:37 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868158</link>
        <description><![CDATA[Gonarh: Потому что Length(tmpItem) возвращает не последний индекс массива, а его длину. У тебя в цикле в последней итерации происходит выход за пределы массива со всеми вытекающими<br>
Используй high(tmpItem) для получения максимального индекса массива. Кроме того, нахрена два цикла, приучайся сразу писать нормальный код, за плохой, будут бить по рукам.<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">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var i,j:Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;j:=1;</div><div class="code_line">&nbsp;&nbsp;for i:=low(Item1) to high(Item1) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Item1[i]&#60;&#62;&#39;empty&#39; then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;setLength(tmpItem, j);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;tmpItem[j-1]:=Item1[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(j);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Button2Click(Sender: TObject);</div><div class="code_line">var i:Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Memo1.Clear;</div><div class="code_line">&nbsp;&nbsp;for i:=low(tmpItem) to high(tmpItem) do Memo1.Lines.Add(tmpItem[i]);</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Gonarh</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868024</guid>
        <pubDate>Thu, 09 Jun 2022 06:37:21 +0000</pubDate>
        <title>Выдает сообщение об ошибках как исправить?</title>
        <link>https://forum.sources.ru/index.php?showtopic=427819&amp;view=findpost&amp;p=3868024</link>
        <description><![CDATA[Katerina1993: У меня есть массив где присутствует 20 элементов. У некоторых значения empty. Я создаю новый массив куда заносятся элементы из старого массива за исключением empty. <br>
<br>
Допустим новый массив будет называться tmpItem. Формирования нового массива будет срабатывать при нажатии кнопки Button1, чтобы вывести результат и посмотреть содержимое tmpItem я использую Memo1 и Button2.<br>
<br>
Код работает записываются и выводятся данные как надо, но я столкнулась с такой проблемой как ошибки. Вот что происходит при записи и чтении массива.<br>
Button1 – запись массива tmpItem.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Access violation at address 00403EA8 in module &#39;Project2.exe&#39;. White of address 00406ACB.</div></div><br>
Button2 – чтение массива tmpItem.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Access violation at address 00403E88 in module &#39;Project2.exe&#39;. Read of address 00000046</div></div><br>
Как исправить?<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;</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;Button2: TButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1: TMemo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Button2Click(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">var</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;Item1: Array[0..19] of String = (&#39;Thread&#39;,&#39;empty&#39;,&#39;Stick&#39;,&#39;Doorknob&#39;,&#39;Loupe&#39;,&#39;empty&#39;,&#39;Ring&#39;,</div><div class="code_line">&nbsp;&nbsp;&#39;Crown&#39;,&#39;Vase&#39;,&#39;empty&#39;,&#39;Book&#39;,&#39;empty&#39;,&#39;Salver&#39;,&#39;empty&#39;,&#39;Handbell&#39;,&#39;Cigarcase&#39;,&#39;Lantern&#39;,&#39;Card&#39;,&#39;Candy&#39;,</div><div class="code_line">&nbsp;&nbsp;&#39;Whisk&#39;);</div><div class="code_line">&nbsp;&nbsp;tmpItem:Array of String;</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">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">var i,j,k,jj:Integer;</div><div class="code_line">begin</div><div class="code_line">j:=0;</div><div class="code_line">for i:=0 to Length(Item1) do</div><div class="code_line">begin</div><div class="code_line">&nbsp;if Item1[i]&#60;&#62;&#39;empty&#39; then</div><div class="code_line">&nbsp;begin</div><div class="code_line">&nbsp;&nbsp;j:=j+1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">setLength(tmpItem, j-1);</div><div class="code_line">&nbsp;</div><div class="code_line">//ShowMessage(IntToStr(Length(Item1)));</div><div class="code_line">//ShowMessage(IntToStr(Length(tmpItem)));</div><div class="code_line">&nbsp;</div><div class="code_line">jj:=0;</div><div class="code_line">for k:=0 to Length(Item1) do</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Item1[k]&#60;&#62;&#39;empty&#39; then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;tmpItem[jj]:=Item1[k];</div><div class="code_line">&nbsp;&nbsp; &nbsp;jj:=jj+1;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</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.Button2Click(Sender: TObject);</div><div class="code_line">var i:Integer;</div><div class="code_line">begin</div><div class="code_line">Memo1.Clear;</div><div class="code_line">for i:=0 to Length(tmpItem) do</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Memo1.Lines.Add(tmpItem[i])</div><div class="code_line">end;</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>
	
      </channel>
      </rss>
	