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

Проблемма с собственным классом   Найти похожие ветки 

 
Piero   (2004-10-31 19:12) [0]

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",
кроме этой ошибок нет.


 
Юрий Зотов ©   (2004-10-31 19:32) [1]

type
 TInscription = record
   f1, f2, f3, f4, f5, f6, f7: string [50];
 end;

 TInscriptionArray = array of TInscription;

 TUSObj = class(TObject)
 private
   FInscriptions: TInscriptionArray;
 ...


 
Anatoly Podgoretsky ©   (2004-10-31 19:39) [2]

А нет у тебя такого свойства


 
GuAV ©   (2004-10-31 19:58) [3]

Нельзя так. Свойство сложного типа может быть записано только полностью. Присваивай запись целиком или юзай класс заместо записи.



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

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



Память: 0.45 MB
Время: 0.05 c
3-1097580456
Павел
2004-10-12 15:27
2004.11.14
как использовать транзакцию


14-1098409506
Ozone
2004-10-22 05:45
2004.11.14
Регулярные языки и конечные автоматы


14-1098651361
Neus
2004-10-25 00:56
2004.11.14
Время


14-1099128975
Федя
2004-10-30 13:36
2004.11.14
GTA SAN Andreas


1-1099415733
Vasya.ru
2004-11-02 20:15
2004.11.14
получить и сложить часы, минуты, секунды, милисекунды




   Наверх