﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / Delphi  / EAccessViolation на многомерный массив / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sun, 23 Nov 2008 00:36:12 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: EAccessViolation на многомерный массив</title><link>http://www.relib.com/forums/Topic910035-8-1.aspx</link><description>Ай, хороший человек! Спасибо! Все заработало!&lt;br&gt;</description><pubDate>Sat, 27 Jan 2007 18:27:34 GMT</pubDate><dc:creator>Tinki87</dc:creator></item><item><title>RE: EAccessViolation на многомерный массив</title><link>http://www.relib.com/forums/Topic910035-8-1.aspx</link><description>а, ну тогда смотри внимательно на свою строчку SetLength(MessGn,Z,Imax+1,Jmax+1);&lt;/P&gt;&lt;P&gt;чем первая размерность отличается от второй и треттей принципиально, ведь ничем?&lt;/P&gt;&lt;P&gt;для второй и третьей ты правильно написал длинну+1 (потому что ты не используешь значения массива с индексом 0, а первый индекс тут всегда 0).&lt;/P&gt;&lt;P&gt;а вот для первой размерности - неправильно указал длинну. если Z=1 то первый (и  он же последний) индекс будет 0, а ты обращаешься к индексу 1 (а его нету, при динне массива 1)&lt;/P&gt;&lt;P&gt;сделай по аналогии +1</description><pubDate>Fri, 26 Jan 2007 11:28:06 GMT</pubDate><dc:creator>ambarka2</dc:creator></item><item><title>RE: EAccessViolation на многомерный массив</title><link>http://www.relib.com/forums/Topic910035-8-1.aspx</link><description>Трабла не в сответствии типов, а в размере массива или памяти, которая выделяется под него.</description><pubDate>Thu, 25 Jan 2007 12:45:28 GMT</pubDate><dc:creator>Tinki87</dc:creator></item><item><title>RE: EAccessViolation на многомерный массив</title><link>http://www.relib.com/forums/Topic910035-8-1.aspx</link><description>есть такая функция StrToFloatDef&lt;/P&gt;&lt;P&gt;нужно обрабатывать тот случай, если у тебя в ячейке не число, или ты думаешь, что число а оно все таки не число :)</description><pubDate>Thu, 25 Jan 2007 11:04:50 GMT</pubDate><dc:creator>ambarka2</dc:creator></item><item><title>EAccessViolation на многомерный массив</title><link>http://www.relib.com/forums/Topic910035-8-1.aspx</link><description>Есть вот такой код:&lt;br&gt;&lt;br&gt;...&lt;br&gt;var&lt;br&gt; MessGn: array of array of array of real;&lt;br&gt;...&lt;br&gt;Z:=1; Imax:=4; Jmax:=4;&lt;br&gt;SetLength(MessGn,Z,Imax+1,Jmax+1);&lt;br&gt;&lt;br&gt;for I:=1 to Imax do&lt;br&gt; for J:=1 to Jmax do&lt;br&gt;  MessGn[Z,I,J]:=StrToFloat(MatrixGrid.Cells[I,J]); &lt;вот на этой строке, в первом же круге цикла возникает ошибка EAccessViolation. Ячейки заполнены в соответствии с real.&lt;br&gt;&lt;br&gt;Пробовал ставить Z:=100, вроде проходит весь цикл. Но мне так нельзя - Z должно быть совсем не 100, а 1.&lt;br&gt;Если SetLength не ставить (так вообще можно делать, кажися), выбивает на ту же самую ошибку.&lt;br&gt;</description><pubDate>Wed, 24 Jan 2007 23:59:14 GMT</pubDate><dc:creator>Tinki87</dc:creator></item></channel></rss>