Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.032 c
1-1086978895
ThermiT
2004-06-11 22:34
2004.06.27
WordDocument Выравнивание в таблице


1-1086976921
MuxauJl
2004-06-11 22:02
2004.06.27
будильник


14-1086899285
KnowledgeSeeker
2004-06-11 00:28
2004.06.27
Память под приложение.


14-1086928186
vv_fran
2004-06-11 08:29
2004.06.27
Какие критерии ***SPAM*** в эл.почте?


3-1086077795
Kirill
2004-06-01 12:16
2004.06.27
Несколько полей для связи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский