Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #30  
Старый 19.11.2012, 12:59
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

когда напишешь так
Код:
property uchastok: tuchastok_array // и здесь                        
read fuchastok                        
write fuchastok;
то получишь огромные грабли в виде того, что писать uchastok можно будеть только целиком всем массивом.
То есть нужно либо оставить только свойство для чтения(при этом модифицировать элементы массива будет возможно), либо сделать более сложные телодвижения типа таких

Код:
tbalka=class         
  private                
    fuchastok: array of tuchastok;
    fshema:tcanvas;
    function GetUchastok(index:Integer):tuchastok;
    procedure SetUchastok(index:Integer; value :tuchastok);    
    procedure setshema(value:tcanvas);
  public
   property uchastok [index:integer]: tuchastok 
       read GetUchastok
       write SetUchastok;                
   property shema:tcanvas
      write setshema;     
end;
но опять же, модифицировать uchastok[i] можно будеть только целиком :
вот так
Код:
var 
  uchastok:tuchastok;

uchastok:=balka.uchastok[i];
uchastok.fdlina:=10;
balka.uchastok[i]:=uchastok;

а вто так
Код:
balka.uchastok[i].fdlina:=10;
уже будет нельзя.

То есть лучше оставить только свойство для чтения, повторяюсь, при этом модифицировать элементы массива будет возможно:
Код:
balka.uchastok[i].fdlina:=10;

Индексированное свойство нужно делать, когда элементы являются ссылочными типами, например классами.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter