Доброго всем вечара.
Возник интересный вопрос. Я никогда с этим раньше не сталкивался.
Мне нужно при обращении к ещё не созданному элементу массива, создать его. Всё это делается при участии ООП.
Есть
Код:
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 ), а не под себя.