Главная страница
    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.47 MB
Время: 0.053 c
2-1161530492
***mikle***
2006-10-22 19:21
2006.11.05
Глюк в Делфе или у меня?


15-1160657889
oldman
2006-10-12 16:58
2006.11.05
Ну вот и все... Как дальше жить?


2-1161342004
Alex_C
2006-10-20 15:00
2006.11.05
Как отключить реакцию на двойной клик мышью?


15-1160931021
atruhin
2006-10-15 20:50
2006.11.05
Компонент меняющий свойство Font у всех компонентов на форме


2-1161622479
markers
2006-10-23 20:54
2006.11.05
Естьли numeric_format в Delphi?





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