home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 February
/
Chip_2000-02_cd.bin
/
zkuste
/
Delphi
/
navody
/
tt
/
objvm.exe
/
UNITS
/
ProxyValue.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-06-27
|
3KB
|
111 lines
{ contains TProxyValue }
unit ProxyValue;
interface
uses VisualValue,
LangValue,Classes;
type
{ TProxyValue is an alias to any other ILangValue.}
{ See Target property for details }
TProxyValue=class(TVisualValue)
protected
fTarget:ILangValue;
function rdAsString:string;override;
procedure wrAsString(Result:string);override;
function rdAsInteger:integer;override;
procedure wrAsInteger(Result:integer);override;
function rdAsBoolean:boolean;override;
procedure wrAsBoolean(Result:boolean);override;
function rdAsVariant:variant;override;
procedure wrAsVariant(Result:variant);override;
function rdAsFloat:Extended;override;
procedure wrAsFloat(Result:Extended);override;
function rdValues(const s:string):ILangValue;override;
public
procedure Exec(S:IValStack;MustReturn:boolean);override;
function CreateEqu:ILangValue;override;
constructor CreateFrom(aTarget:ILangValue);
function HasValue(const s:string):boolean;override;
published
{ ILangValue represented by proxy. All call to proxy is implemented }
{ by repeating this calls to Target. See source of TProxyValue for details }
property Target:ILangValue read fTarget write fTarget;
constructor Create(o:TComponent);override;
function CreateSame(o:TComponent):TVisualValue;override;
end;
implementation
function TProxyValue.rdAsString;
begin
Result:=Target.AsSTring;
end;
procedure TProxyValue.wrAsString;
begin
Target.AsString:=Result;
end;
function TProxyValue.rdAsInteger;
begin
Result:=Target.AsInteger;
end;
procedure TProxyValue.wrAsInteger;
begin
Target.AsInteger:=Result;
end;
function TProxyValue.rdAsBoolean;
begin
Result:=Target.AsBoolean;
end;
procedure TProxyValue.wrAsBoolean;
begin
Target.AsBoolean:=Result;
end;
function TProxyValue.rdAsVariant;
begin
Result:=Target.AsVariant;
end;
procedure TProxyValue.wrAsVariant;
begin
Target.AsVariant:=Result;
end;
function TProxyValue.rdAsFloat;
begin
Result:=Target.AsFloat;
end;
procedure TProxyValue.wrAsFloat;
begin
Target.AsFloat:=Result;
end;
function TProxyValue.rdValues;
begin
Result:=Target.Values[s];
end;
procedure TProxyValue.Exec;
begin
Target.Exec(S,MustReturn);
end;
function TProxyValue.CreateEqu;
begin
Result:=TProxyValue.CreateFrom(Target);
end;
constructor TProxyValue.CreateFrom(aTarget:ILangValue);
begin
Inherited Create(nil);
Target:=aTarget;
end;
function TProxyValue.HasValue;
begin
Result:=Target.HasValue(s);
end;
constructor TProxyValue.Create;
begin
Inherited Create(o);
Target:=Nil;
end;
function TProxyValue.CreateSame;
begin
Result:=Inherited CreateSame(o);
(Result as TProxyValue).Target:=Target;
end;
end.