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

Заморочка в коллекции   Найти похожие ветки 

← →
Navi   (2004-06-12 17:46) [0]

Уважаемые мастера!
Опробовал пример к статье Юрия Зотова «Коллекции и работа с ними» (на Королевстве Дельфи). Ввел в свойства точки (TSpot) новое свойство Center: TPoint:
 TSpot = class(TCollectionItem)
 private
   FCenterX: integer;
   FCenterY: integer;
   FColor: TColor;
   FCenter: TPoint;
   procedure SetCenterX(const Value: integer);
   procedure SetCenterY(const Value: integer);
   procedure SetColor(const Value: TColor);
   procedure SetCenter(const Value: TPoint);
 public
   constructor Create(Collection: TCollection); override;
 published
   property CenterX: integer read FCenterX write SetCenterX default 3;
   property CenterY: integer read FCenterY write SetCenterY default 3;
   property Color: TColor read FColor write SetColor default clBlack;
   property Center: TPoint read FCenter write SetCenter;
 end;

И для реализации добавил:
procedure TSpot.SetCenter(const Value: TPoint);
begin
   FCenter.x:= Value.x;
   FCenter.y:= Value.y;
   Changed(False)
end;

Но такой код на кнопке формы:
var
 s: TSpot;
begin
 s:= DappledShape1.Spots.Add;
 s.Center.x:= 50; Я
end;
дает Error «Left side cannot be assigned to» при присвоении. Что-то я не догоняю. Помогите, пожалуйста.


← →
KilkennyCat ©   (2004-06-12 18:00) [1]


> DappledShape1.Spots.Add


разве это можно присвоить ???? Подумайте, чему равняется DappledShape1.Spots.Add в Вашем варианте?


← →
Navi   (2004-06-12 18:09) [2]

Ну а делаем:
s.CenterX:= 10; и все работает.


← →
U   (2004-06-12 18:27) [3]

Когда свойство имеет тип структуры,
нельзя присваивать её полям.
Можно только присваивать структуру целиком:

s.Center := Point(10, 10);


← →
Navi   (2004-06-13 12:18) [4]

Спасибо U. А вот такой вопрос(смежный). Для свойства типа integer можно написать спецификатор default, а для структуры типа TPoint можно как-то это сотворить?



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

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



Память: 0.46 MB
Время: 0.036 c
1-1086850034
Konstantin
2004-06-10 10:47
2004.06.27
Помогите пожалуйста с Excel, - <invalid variant operation>


11-1075928030
Sniper
2004-02-04 23:53
2004.06.27
альтернатива RichEdit1.SelAttributes.Color := clRed; в KOL?


1-1086778243
Shaman
2004-06-09 14:50
2004.06.27
Как обнулить переменную Currency


1-1087047993
Navi
2004-06-12 17:46
2004.06.27
Заморочка в коллекции


14-1086625212
_студент
2004-06-07 20:20
2004.06.27
Экзамен по схемотеху. Билет № 13




   Наверх