![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемма с собственным классом
Piero © (2004-10-31 19:12:00)TInscription = record // Запись
f1,f2,f3,f4,f5,f6,f7 : string [50];
end;
TUSObj = class(TObject)
private
Inscriptions : array of TInscription; // Массив записей
function GetInscription(NumInscr: byte): TInscription;
procedure SetInscription(NumInscr: byte; Value: TInscription);
....
public
....
property Inscript[NumIscr : byte] : TInscription read GetInscription write SetInscription;
end;
// Чтение из масива
function TUSObj.GetInscription(NumInscr: byte): TInscription;
begin
Result:=Inscriptions[NumInscr];
end;
// Запись в массив
procedure TUSObj.SetInscription(NumInscr: byte; Value: TInscription);
begin
If NumInscr > length(Inscriptions) then Setlength(Inscriptions,NumInscr);
Inscriptions[NumInscr]:=Value;
end;
// В программе пишу
var o1 : TUsObj;
begin
...
o1.inscript[1].f1:='jjj';
Программа не компилируется, на последнюю сточку выводится сообщение:
"Left side cannot be assigned to",
кроме этой ошибок нет.
GuAV (2004-10-31 19:58:00) [1]Нельзя так. Свойство сложного типа может быть записано только полностью. Присваивай запись целиком или юзай класс заместо записи.
Anatoly Podgoretsky (2004-10-31 19:39:00) [2]А нет у тебя такого свойства
Юрий Зотов (2004-10-31 19:32:00) [3]type
TInscription = record
f1, f2, f3, f4, f5, f6, f7: string [50];
end;
TInscriptionArray = array of TInscription;
TUSObj = class(TObject)
private
FInscriptions: TInscriptionArray;
...