Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

Делегирование реализации интерфейсов   Найти похожие ветки 

 
Priest ©   (2006-08-01 13:48) [0]

Есть класс, в котором реализуется интерфейс. В дргуом классе также необходимо реализовать тот же интерфейс, но непоторые свойства нужны publisher. Делаю так:

IMyInterface = interface(IInterface)
 ["{226F9C33-14C1-413F-A34D-EB37EBD354E9}"]
   function GetValue_: Integer;
   procedure SetValue_(const Value: Integer);
   property Value_: Integer read GetValue_ write SetValue_;
 end;

 TMyIntfImpl = class(TComponent, IMyInterface)
 private
   FValue_: Integer;
 public
   function GetValue_: Integer;
   procedure SetValue_(const Value: Integer);
   property Value_: Integer read GetValue_ write SetValue_;
 end;

 TMyOtherClass=class(TComponent, IMyInterface)
 private
   FMyInterface: IMyInterface;
 protected
   function GetValue_: Integer;
   procedure SetValue_(const Value: Integer);
 public
   property MyInterface: IMyInterface read FMyInterface implements IMyInterface;
 published
   property Value_: Integer read GetValue_ write SetValue_;
 end;

function TMyOtherClass.GetValue_: Integer;
begin
  Result := MyInterface.Value_;
end;

procedure TMyOtherClass.SetValue_(const Value: Integer);
begin
MyInterface.Value_:=Value;
end;

Последние два метода не очень красивые, т.к. просто вызывают свойство вложенного объекта. Можно ли решить задачу более красиво?


 
Romkin ©   (2006-08-01 14:08) [1]

У интерфейса только одна секция, public. Как бы ты ни изворачивался :)


 
Priest ©   (2006-08-01 14:13) [2]

Да я понимаю. Но смысл в том, чтобы некоторые свойства интерфейса сделать видимыми в Дизайн-Тайм у компонента.... Надоело писать однотипный код :(


 
Romkin ©   (2006-08-01 14:17) [3]

Сделай потомка класса и перемести проперти.



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

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.051 c
15-1156137693
Ega23
2006-08-21 09:21
2006.09.17
С Днём рождения! 19 - 21 августа


15-1156842507
ToTo
2006-08-29 13:08
2006.09.17
Интернет поиск


1-1154988125
Яков
2006-08-08 02:02
2006.09.17
Boolean поле(нужна помощь, сроки поджимают, горю!)


3-1152610011
Asail
2006-07-11 13:26
2006.09.17
Проблемма с тригером в IB.


15-1156616467
batya17
2006-08-26 22:21
2006.09.17
каую прогу посоветуете для создание инсталяшек?