Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемма с собственным классом


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;
 ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо