Доброго всем вечара.
Возник интересный вопрос. Я никогда с этим раньше не сталкивался.
Мне нужно при обращении к ещё не созданному элементу массива, создать его. Всё это делается при участии ООП.
Есть
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | type LocationArray = array of Integer ;
TP = class
private
FLocation : LocationArray;
protected
procedure SetLocation(Location:LocationArray);
public
property Location : LocationArray read FLocation write SetLocation;
end ;
...
procedure TMat4fLocations . SetLocation(Location:LocationArray);
begin
SetLength(FLocation,length(FLocation)+ 1 );
end ;
|
Вот как я попытался решить свою задачу. Кстати, весь код, что я привёл выше пишется в третьем модуле и подключается к любому проекту при необходимости. Так вот, тогда в рабочем проекте я просто пишу строчку:
XXX.Location[0]:=0;[/code] Я получаю ошибку AV, и не секрет почему. Ведь XXX.Location[0], то, не существует! Как мне быть, друзья? Я раньше пихал SetLength в свою рабочую прогу и не парился. Но это неудобно и по невнимательностьи можно легко выделать слишком мало (и получить опять же AV)/много памяти... Да и модуль разрабатывается на благо всех юзвергов GLSL 3.30 (
http://www.glscene.ru/forum_viewtopic.php?12.48232.60 ), а не под себя.