Модератор: Модераторы
{$OBJECTCHECK ON}
{$INTERFACES CORBA}
program delegation_test;
type
IDeclaredOptions = interface
procedure MetodA;
procedure MetodB;
end;
TManager = class
private
FRealization: IDeclaredOptions;
public
property Realization: IDeclaredOptions read FRealization write FRealization;
end;
TRealization1 = class( IDeclaredOptions)
procedure MetodA;
procedure MetodB;
end;
TRealization2 = class( IDeclaredOptions)
procedure MetodA;
procedure MetodB;
end;
procedure TRealization1.MetodA;
begin
writeln('TRealization1.MetodA');
end;
procedure TRealization1.MetodB;
begin
writeln('TRealization1.MetodB')
end;
procedure TRealization2.MetodA;
begin
writeln('TRealization2.MetodA')
end;
procedure TRealization2.MetodB;
begin
writeln('TRealization2.MetodB')
end;
var
M1, M2 : TManager;
begin
M1 := TManager.Create;
M1.Realization := TRealization1.Create;
M1.Realization.MetodA; M1.Realization.MetodB;
M1.Realization := TRealization2.Create;
M1.Realization.MetodA; M1.Realization.MetodB
end.
program delegation_test;
{$Mode objfpc}
{$OBJECTCHECKS ON}
{$INTERFACES CORBA}
type
IDeclaredOptions = interface
procedure MetodA;
function MetodB : Integer;
end;
TManager = class(IDeclaredOptions)
public
FRealization: IDeclaredOptions;
property Realization: IDeclaredOptions read FRealization implements IDeclaredOptions;
end;
TRealization1 = class( IDeclaredOptions)
procedure MetodA;
function MetodB : Integer;
end;
TRealization2 = class( IDeclaredOptions)
procedure MetodA;
function MetodB : Integer;
end;
procedure TRealization1.MetodA;
begin
writeln('TRealization1.MetodA');
end;
function TRealization1.MetodB : Integer;
begin
writeln('TRealization1.MetodB')
end;
procedure TRealization2.MetodA;
begin
writeln('TRealization2.MetodA')
end;
function TRealization2.MetodB : Integer;
begin
writeln('TRealization2.MetodB')
end;
var
Mn : TManager;
begin
Mn := TManager.Create;
Mn.FRealization := TRealization1.Create;
Mn.Realization.MetodA; Mn.Realization.MetodB;
Mn.FRealization := TRealization2.Create;
Mn.Realization.MetodA; Mn.Realization.MetodB
end.
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7