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

Вниз

Запутался с дерективами видимости.   Найти похожие ветки 

 
Kolan ©   (2006-12-13 10:52) [0]

Есть простой класс и интерфейс:
 IRange = interface
   function GetLeftAge: Double;
   procedure SetLeftAge(const Value: Double);
   function GetRightAge: Double;
   procedure SetRightAge(const Value: Double);
   function GetStep: Double;
   procedure SetStep(const Value: Double);
   property LeftAge: Double read GetLeftAge write SetLeftAge;
   property RightAge: Double read GetRightAge write SetRightAge;
   property Step: Double read GetStep write SetStep;
 end;

 TRange = class(TInterfacedObject, IRange)
 strict private
   FLeftAge: Double;
   FRightAge: Double;
   FStep: Double;
   function GetLeftAge: Double;
   procedure SetLeftAge(const Value: Double);
   function GetRightAge: Double;
   procedure SetRightAge(const Value: Double);
   function GetStep: Double;
   procedure SetStep(const Value: Double);
 public
   property LeftAge: Double read GetLeftAge write SetLeftAge;
   property RightAge: Double read GetRightAge write SetRightAge;
   property Step: Double read GetStep write SetStep;
 end;


Тк в классе процедуры доступа Set Get строго прайвэт, то он ругается что мол
[Pascal Error] KAmplifierAnalyzerSensitivityAnalyzer.pas(34): E2003 Undeclared identifier: "GetRightAge"

А если их убрать из интерфейса, то ессно в интерфейсе он не знает что такое Get Set. Что делать?

ЗЫ
 Главное сам почти ниче не писал. Все автоматом....


 
Kolan ©   (2006-12-13 10:57) [1]

Решение я понятно знаю - объявить методы просто private. Но почему сама среда это не учла? Или я не прав?


 
Сергей М. ©   (2006-12-13 12:04) [2]

Зачем в интерфейсе объявлены Get/Set-методы ?
Не нужны они там совершенно - доступ к ним осуществляется через соотв. св-ва интерфейса.


 
Игорь Шевченко ©   (2006-12-13 13:20) [3]


> Не нужны они там совершенно - доступ к ним осуществляется
> через соотв. св-ва интерфейса.


Это как ?


 
Игорь Шевченко ©   (2006-12-13 13:25) [4]


> Есть простой класс и интерфейс:


Странно. А у меня он методы интерфейса в секцию public сам помещает


 
Сергей М. ©   (2006-12-13 14:02) [5]


> Это как ?


Упс..

Это я загнул)


> Kolan


Реализации интерфейсных методов перенеси в protected


 
Eraser ©   (2006-12-13 18:26) [6]

> [1] Kolan ©   (13.12.06 10:57)

а почему бы не объявить эти методы public, по аналогии с C# (на там это для других целей), может кому-то удобнее напрямую методы вызывать, чем обращаться к свойствам.


 
Kolan ©   (2006-12-13 18:31) [7]

> public

Дало в том, что я писал св-ва а методы он сгенерил сам. и сам их поместил в строго прайват. Интерфейс извлек тоже не руками, а рефакторингом....


 
Kolan ©   (2006-12-13 18:35) [8]

> секцию public сам помещает

Точно это я виноват :(
Просто при извлечении интерфейса он их действительно в паблик сует и причем ниже свойств, поэтому ругается что мол где методы для свойств. Вот я их на автомате повыше и засунул. Виноват вообщем...



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

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

Наверх




Память: 0.46 MB
Время: 0.05 c
6-1157144470
Орион
2006-09-02 01:01
2007.02.04
Прокси для TWebBrowser


6-1157030488
DelphiLexx
2006-08-31 17:21
2007.02.04
Отправка SMS с помощью INDY


15-1168895678
VolJinn
2007-01-16 00:14
2007.02.04
Коммуникатор


15-1168359887
xayam
2007-01-09 19:24
2007.02.04
блин ну и умучался я с этой Вашей bds 2006 ))


6-1157298968
Frimen
2006-09-03 19:56
2007.02.04
Файл IWInitStandAlone.pas для IntraWeb





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский