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

Вниз

Извлечение интерфейса и свойство, обращающееся к полю   Найти похожие ветки 

 
Kolan ©   (2006-10-17 15:17) [0]

Здравствуйте,
 Есть класс

TROMPackage = class(TCustomPackage)
 private
   FPackageNumber: Byte;
 public
   property PackageNumber: Byte read FPackageNumber write FPackageNumber;
end;


Хочу сделать извлечение интерфейса. Те
IROMPackage = interface
 property PackageNumber: Byte read FPackageNumber write FPackageNumber;
end;
 

Ессно ругается, так как не знает интерфейс о полях.
Как исправить?

1. Можно использовать методы доступа: вместо  read FPackageNumber - read GetPackageNumber. Но мне эти методы не нужны в них будет просто обрашение к полям, а если св-в много, то соответственно и методов х2.

2. Может можно в интерфйсе прото указать что есть св-во с таким именем без указания read/write. Как-то так:

IROMPackage = interface
   property PackageNumber: Byte;
 end;


Ессно это не компилиться.


 
Ketmar ©   (2006-10-17 15:19) [1]

нельзя. нет в интерфейсах "полей". есть только методы.


 
Percent   (2006-10-17 15:19) [2]

Но мне эти методы не нужны

Тебе, может, и не нужны... но придется.


 
palva ©   (2006-10-17 15:20) [3]

Что такое извлечение интерфейса?
В интерфейсе не бывает свойств.


 
Сергей М. ©   (2006-10-17 15:21) [4]


> Как исправить?


Указать методы.


 
Kolan ©   (2006-10-17 15:22) [5]


> нет в интерфейсах "полей"

Понятно что нет. Так как-нибудь написать, чтобы все равно как реализовать read /write. Те интерфейс какой-то такой:

IROMPackage = interface
  property PackageNumber: Byte;
end;


А реализация чтобы хош такия:

property PackageNumber: Byte read FPackageNumber write FPackageNumber;

Хош такакая:

property PackageNumber: Byte read GetPackageNumber writeSetPackageNumber;


 
Percent   (2006-10-17 15:22) [6]

Что такое извлечение интерфейса?

...очередной флейм на 150 постов обеспечен...


 
Ketmar ©   (2006-10-17 15:22) [7]

право же, накладные раходы на вызов метода пренебрежимо малы. тем более на современных процессорах. не будет это ощутимо медленней простого разыменования.


 
Kolan ©   (2006-10-17 15:22) [8]


> Что такое извлечение интерфейса?
> В интерфейсе не бывает свойств.
>

Extract Interface - рефакторинг(его метод)

В интерфейсе не бывает свойств.
Угу, бывают.


 
Ketmar ©   (2006-10-17 15:22) [9]

>[6] Percent 17-Oct-2006, 15:22
>...очередной флейм на 150 постов обеспечен...
и ты его тоже поддерживаешь подобными высказываниями. %-))


 
Percent   (2006-10-17 15:23) [10]

Kolan ©   (17.10.06 15:22) [5]

Тпру-у-у... Тебе сказали, что нельзя? К чему все эти поиски черных кошек в темных комнатах?


 
Kolan ©   (2006-10-17 15:23) [11]


> Указать методы.

Ну до этого я и сам дошел :)


 
Ketmar ©   (2006-10-17 15:25) [12]

>[11] Kolan(c) 17-Oct-2006, 15:23
>Ну до этого я и сам дошел :)
и всё. завязывай флудить. по буквам:
Н
Е
Л
Ь
З
Я
dixi.


 
Kolan ©   (2006-10-17 15:25) [13]

Since an interface has no fields, property read and write specifiers must be methods.

Все пошел делать методы :(



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

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

Наверх





Память: 0.48 MB
Время: 0.068 c
15-1161187243
Хинт
2006-10-18 20:00
2006.11.05
Вопрос по html (таблицы)


2-1161083044
vitv
2006-10-17 15:04
2006.11.05
WindowState-wsMaximized-альтернатива.


8-1143894964
zxcv
2006-04-01 16:36
2006.11.05
HELP(Timage Tbitmap)


15-1161146287
Layner
2006-10-18 08:38
2006.11.05
WindowsXP: один раз вошел в домен, теперь локально работаю


15-1161073849
Kolan
2006-10-17 12:30
2006.11.05
Макросы в BDS2006





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