![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не присваиваются значения! [D7, XP]
Виталик 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