Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Внизarray of shortint Найти похожие ветки
← →
trotski (2003-01-16 17:59) [0]Не пойму в чем дело. Использую динамический массив a:array of shortint, в Form1Create пишу SetLength(Form1.a,size), работаю, все нормально. Но после закрытия проги вылетает "Недопустимую операцию и будет закрыто"? В Form1Destroy пробовал SetLength(Form1.a,0) и Form1.a:=nil, ничего не помогает. Пошаговая отладка тоже ничего не дает.
← →
Smithson (2003-01-16 18:03) [1]Где описан массив? В форме или в модуле? Если в модуле - в каком?
← →
mrcat (2003-01-16 18:22) [2]trotski (16.01.03 17:59)
Код в студию!
← →
Chubais (2003-01-16 18:51) [3]в студию входит КОТ....
← →
Andrey V. (2003-01-17 08:13) [4]Не далее как вчера (посмотри сабж "dynamic array")
я задавал похожий вопрос.
Все вылечилось отказом от массива и использованием вместо него
TStringList.
← →
MBo (2003-01-17 08:24) [5]Да нет особых проблем и с дин. массивами
← →
Smithson (2003-01-17 09:00) [6]Просто если массив объявлен в модуле, то он создается при инициализации модуля и удаляется при его финализации и после этого (например, в деструкторе главной формы) может уже отсутствовать.
← →
Думкин (2003-01-17 09:18) [7]а у тебя массив при использовании никуда не может залезть на чужое?
← →
Думкин (2003-01-17 09:28) [8]Подобное проходит, но последствия ....
SetLength(a,5);
a[6]:= 1;
← →
han_malign (2003-01-17 09:34) [9]Думкин (17.01.03 09:28) - поддерживаю
скорее всего
for i:=1 to Size do ...
вместо
for i:=0 to Size-1 do ...
They are always zero-based. The first element is 0, the second element is 1, and so forth. The standard Low and High functions return 0 and Length – 1, respectively.
← →
Чих-пых (2003-01-17 16:32) [10]А лучше вообще забыть про for i:=0 to Size-1 do
и всегда использовать вот это:
for i:=Low(Arr) to High(Arr) do
...
← →
bogachev (2003-01-17 17:09) [11]
TForm1 = class(TForm)
private
a : array of ShortInt;
{ Private declarations }
public
{ Public declarations }
end;
Попробуй так. У меня на D6 работает без проблем.
← →
trotski (2003-01-17 23:47) [12]В том-то и дело. В одной проге описано там где Form1:TForm1 в другой в private и там тоже все работает. А в данной в private, самое смешное, что ошибка вылезла после того, как я написал код в процедуре отрисовки for i:=0 to 255 do ... В понедельник до работы доберусь, попробую через Low и High. Кода приветси не могу, дома его нет. И еще вопрос : как понять где ошибка, если выдают только номер? Окном ЦПУ?
← →
Моисей (2003-01-19 11:46) [13]а может у тебя чего-то перерисовывается, когда массив уже издох (в смысле -- освободился)? так может получиться, если евент приходит в тот момент когда форма освобождается.
ты попробуй, для проверки, перед тем как перерисовывать, сам массив проверить, типа if assign..., а еще проще try/except
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c