Форум: "Компоненты";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизДелегирование реализации интерфейсов Найти похожие ветки
← →
Priest © (2006-02-07 11:34) [0]Вот такая конструкция работает нормально
unit Unit1;
interface
Uses Classes;
type
IMyIntf = interface(IInterface)
procedure DoAct;
end;
TMyComp1 = class(TComponent,IMyIntf)
public
procedure DoAct;
end;
TMyUserIntf = class(TComponent)
private
FIntf: IMyIntf;
procedure SetIntf(const Value: IMyIntf);
published
property Intf: IMyIntf read FIntf write SetIntf;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("MyComp",[TMyComp1,TMyUserIntf]);
end;
procedure TMyUserIntf.SetIntf(const Value: IMyIntf);
begin
FIntf := Value;
end;
procedure TMyComp1.DoAct;
begin
//
end;
end.
Если же я делегирую реализацию интерфейса, то не могу его присвоить в дезайн-тайм. при этом значение выбирается и присваивается, но не показывается в инспекторе и не записывается в дфм. вот проблемный код.
unit Unit1;
interface
uses Classes;
type
IMyIntf = interface(IInterface)
procedure DoAct;
end;
TMyComp1 = class(TComponent, IMyIntf)
private
FInterf: IMyIntf;
public
constructor Create(AOwner: TComponent); override;
property Interf: IMyIntf read FInterf implements IMyIntf;
end;
TMyUserIntf = class(TComponent)
private
FIntf: IMyIntf;
procedure SetIntf(const Value: IMyIntf);
published
property Intf: IMyIntf read FIntf write SetIntf;
end;
TIMyIntfImplementer = class(TInterfacedObject, IMyIntf)
procedure DoAct;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("MyComp", [TMyComp1, TMyUserIntf]);
end;
procedure TMyUserIntf.SetIntf(const Value: IMyIntf);
begin
FIntf := Value;
end;
constructor TMyComp1.Create(AOwner: TComponent);
begin
inherited;
FInterf := TIMyIntfImplementer.Create;
end;
procedure TIMyIntfImplementer.DoAct;
begin
//
end;
end.
← →
jack128 © (2006-02-07 11:41) [1]Priest © (07.02.06 11:34)
Если же я делегирую реализацию интерфейса, то не могу его присвоить в дезайн-тайм. при этом значение выбирается и присваивается, но не показывается в инспекторе и не записывается в дфм. вот проблемный код.
Ну сам запиши свойство в dfm" ник, в чем проблема, то..
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c