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

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

Не присваиваются значения! [D7, XP]


Страницы:   1 2

Виталик 2006 ©   (2006-11-18 14:45:00) 

Здравствуйте, мастера. Помогите решить задачку:
Вот у меня есть запись

TCircle = record
  x, y, r: integer;
end;

Дальше мне нужно обрабатывать много окружностей - делаю класс на основе TList

TCircles = class(TList)
 private
   function GetCircle(index: integer): TCircle;
   procedure SetCircle(index: integer; const Value: TCircle);
 public
   property Items[index: integer]: TCircle read GetCircle write SetCircle; default;
   ...


Всё отлично работает кроме одной необходимой вещи.
Я не могу использовать например такое:

Circles[0].x:=10;

..а очень хочется=)

Как я понимаю, можно только целиком присваивать

Circles[0] := OtherCircle;

что очень неудобно, если мне нужно только х поменять.
Подскажите, как исправить...


Виталик 2006   (2006-11-18 17:22:00) [21]

> Palladin ©   (18.11.06 17:12) [5]
супер! спасибо.
Правда придётся теперь в параметрах всех функций
TCircle на PCircle менять.. %)

и маленький вопросик:
почему работает даже

Circles[0].x:=10;

ведь должно быть

Circles[0]^.x:=10;

?


Palladin   (2006-11-18 17:12:00) [22]


PCircle = ^TCircle
TCircle = record
 x, y, r: integer;
end;

TCircles = class(TList)
private
  function GetCircle(index: integer): PCircle;
public
  property Items[index: integer]: PCircle read GetCircle; default;
  ...


Виталик 2006   (2006-11-18 17:07:00) [23]

Да, класс нужен.
Т. е. так

property Items[index, ParamIndex: integer]: integer read GetParam write SetParam; default;


Но ведь это не очень читабельно.
И чисто теоретически, если бы у записи были поля разных типов...

Неужели это единственный способ?


MBo   (2006-11-18 15:02:00) [24]

>как это?
Точно также, как Items, только без Default.

А вообще тебе нужен класс или можно массивом обойтись?


Виталик 2006   (2006-11-18 15:00:00) [25]

> MBo ©   (18.11.06 14:55) [1]
> можно добавить дополнительные индексированные свойства для X, Y и R
напишите по подробнее, как это?


MBo   (2006-11-18 14:55:00) [26]

можно добавить дополнительные индексированные свойства для X, Y и R


Страницы:   1 2

Наверх

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