![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извлечение интерфейса и свойство, обращающееся к полю
Kolan © (2006-10-17 15:17:00)Здравствуйте,
Есть класс
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:25:00) [1]>[11] Kolan(c) 17-Oct-2006, 15:23
>Ну до этого я и сам дошел :)
и всё. завязывай флудить. по буквам:
Н
Е
Л
Ь
З
Я
dixi.
Kolan (2006-10-17 15:25:00) [2]
Since an interface has no fields, property read and write specifiers must be methods.
Все пошел делать методы :(
Percent (2006-10-17 15:23:00) [3]Kolan © (17.10.06 15:22) [5]
Тпру-у-у... Тебе сказали, что нельзя? К чему все эти поиски черных кошек в темных комнатах?
Kolan (2006-10-17 15:23:00) [4]
> Указать методы.
Ну до этого я и сам дошел :)
Kolan (2006-10-17 15:22:00) [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:00) [6]Что такое извлечение интерфейса?
...очередной флейм на 150 постов обеспечен...
Ketmar (2006-10-17 15:22:00) [7]право же, накладные раходы на вызов метода пренебрежимо малы. тем более на современных процессорах. не будет это ощутимо медленней простого разыменования.
Kolan (2006-10-17 15:22:00) [8]
> Что такое извлечение интерфейса?
> В интерфейсе не бывает свойств.
>
Extract Interface - рефакторинг(его метод)
В интерфейсе не бывает свойств.
Угу, бывают.
Ketmar (2006-10-17 15:22:00) [9]>[6] Percent 17-Oct-2006, 15:22
>...очередной флейм на 150 постов обеспечен...
и ты его тоже поддерживаешь подобными высказываниями. %-))
Сергей М. (2006-10-17 15:21:00) [10]
> Как исправить?
Указать методы.
palva (2006-10-17 15:20:00) [11]Что такое извлечение интерфейса?
В интерфейсе не бывает свойств.
Ketmar (2006-10-17 15:19:00) [12]нельзя. нет в интерфейсах "полей". есть только методы.
Percent (2006-10-17 15:19:00) [13]Но мне эти методы не нужны
Тебе, может, и не нужны... но придется.