Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизПроблема с массивом Найти похожие ветки
← →
nikolas (2005-10-19 17:43) [0]Добрый день!
Есть тип TMyArray = array[0..n] of TObject;
объявляю в классе поле:
type
TMyClass = class
private
FMyArray: TMyArray;
public
property MyArray: TMyArray read FMyArray;
end;
когда пытаюсь обратится к элементу
MyArray[0]:=TObject.Create... получаю ошибку "left side cannot be assigned to".
Что здесь неправильно?
← →
MetalFan © (2005-10-19 17:45) [1]ну ясен пень! у тебя ж пропертя readonly!!
...write FMyArray еще нуна
← →
MetalFan © (2005-10-19 17:45) [2]упс... гоню...
← →
MetalFan © (2005-10-19 17:47) [3]а попробуй не TObject.Create, а TMyClass.create написать...
TObject это ж вроде абстрактный класс... или я опять гоню? )
← →
begin...end © (2005-10-19 17:53) [4]> nikolas (19.10.05 17:43)
Тип свойства MyArray -- TMyArray. Это массив. Значит, этому свойству можно присвоить значение только целого массива типа TMyArray. И только в том случае, если оно не read-only.
Выход -- например, сделать индексированное свойство (понадобится ещё написать методы для чтения и записи поля).
Хотя, в принципе, есть способ сделать почти так, как делаете Вы. Но так лучше не делать.
← →
umbra © (2005-10-19 17:55) [5]1) Вы объявили свойство, доступное только для чтения. Чтобы иметь возможность что либо ему присвоить оно должнобыть объявлено как доступное для чтения и записи. А чтобы получить доступ к элементам массива, это должно быть свойство-массив. В общем, объявлять надо так:
property MyObj[index: Integer]: TObject read GetElement write SetElement;
А затем в процедурах GetElement и SetElement что-то делать с FMyArray
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c