Вниз
Скачать: CL | DM;

Динамич. массивы   Найти похожие ветки 

 
Stalker13   (2004-01-28 19:57) [0]

Имеется объект TDisc, с свойством Tracks – динамическим массивом, и методом ReadInf, в котором задаём размер массива Tracks и заполняем его:

TDisc=class
TrNumber:Cardinal;
Tracks:array of TTrack;
procedure ReadInf;
end;

procedure TDisc.ReadInf;
var i:shortint;
begin
…….
SetLength(Tracks,TrNumber);
for i:=1 to TrNumber do
begin
Tracks[i]:=…..;
end;

end;

При первом выполнении процедуры всё проходит “на ура”, при повторном – выдаётся ошибка при задании размера массива(SetLength()). В чём тут может быть причина?


 
Тимохов ©   (2004-01-28 19:58) [1]

Да и при первом на ура не должно работать.
Дин массивы индексируются с 0...


 
YuRock ©   (2004-01-28 20:03) [2]

The one exception is when increasing the length of a dynamic array in which the elements are types that must be initialized (strings, Variants, Variant arrays, or records that contain such types)


 
YuRock ©   (2004-01-28 20:03) [3]

> Тимохов © (28.01.04 19:58) [1]

Кстати да...


 
Тимохов ©   (2004-01-28 20:04) [4]


> The one exception is when increasing the length of a dynamic
> array in which the elements are types that must be initialized
> (strings, Variants, Variant arrays, or records that contain
> such types)

Это откуда взято?


 
YuRock ©   (2004-01-28 20:07) [5]

Delphi Help (D6) на функцию SetLength


 
Тимохов ©   (2004-01-28 20:09) [6]

Ну прочел.
К ошибке этого отношения не имеет :)))
Ошибка у него в том, что скорее всего отключен range checking и при первом "на ура" нет никакой ошибки...


 
YuRock ©   (2004-01-28 20:11) [7]

Да, согласен. Я сразу не заметил.


 
Stalker13   (2004-01-28 20:14) [8]

а что подразуумевается под range checking...??? господа


 
Тимохов ©   (2004-01-28 20:15) [9]

Опция такая есть в свойствах проекта. У тебя она отключена (раз первый раз было "на ура").


 
Stalker13   (2004-01-28 20:17) [10]

спасибо.. будем смотреть



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
1-16301
Grinder
2004-01-25 21:36
2004.02.06
Hint


3-16149
Yurich
2004-01-14 23:28
2004.02.06
Перевод базы на др. машину


1-16370
SniZ
2004-01-24 00:04
2004.02.06
На счёт проверки строки...


8-16528
Raduga
2003-10-01 11:00
2004.02.06
Как убрать мерцание при перерисовке?


1-16256
denis24
2004-01-26 12:18
2004.02.06
checklistbox.drawitem




   Наверх