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 >
Pascal/Delphi Source File  |  1998-06-27  |  3KB  |  111 lines

  1. { contains TProxyValue }
  2. unit ProxyValue;
  3.  
  4. interface
  5. uses VisualValue,
  6.      LangValue,Classes;
  7.  
  8. type
  9.         { TProxyValue is an alias to any other ILangValue.}
  10.         { See Target property for details }
  11.      TProxyValue=class(TVisualValue)
  12.      protected
  13.         fTarget:ILangValue;
  14.         function rdAsString:string;override;
  15.         procedure wrAsString(Result:string);override;
  16.         function rdAsInteger:integer;override;
  17.         procedure wrAsInteger(Result:integer);override;
  18.         function rdAsBoolean:boolean;override;
  19.         procedure wrAsBoolean(Result:boolean);override;
  20.         function rdAsVariant:variant;override;
  21.         procedure wrAsVariant(Result:variant);override;
  22.         function rdAsFloat:Extended;override;
  23.         procedure wrAsFloat(Result:Extended);override;
  24.         function  rdValues(const s:string):ILangValue;override;
  25.      public
  26.         procedure Exec(S:IValStack;MustReturn:boolean);override;
  27.         function  CreateEqu:ILangValue;override;
  28.         constructor CreateFrom(aTarget:ILangValue);
  29.         function HasValue(const s:string):boolean;override;
  30.      published
  31.           { ILangValue represented by proxy. All call to proxy is implemented }
  32.           { by repeating this calls to Target. See source of TProxyValue for details }
  33.         property Target:ILangValue read fTarget write fTarget;
  34.         constructor Create(o:TComponent);override;
  35.         function    CreateSame(o:TComponent):TVisualValue;override;
  36.      end;
  37. implementation
  38. function TProxyValue.rdAsString;
  39.          begin
  40.            Result:=Target.AsSTring;
  41.          end;
  42. procedure TProxyValue.wrAsString;
  43.          begin
  44.            Target.AsString:=Result;
  45.          end;
  46. function TProxyValue.rdAsInteger;
  47.          begin
  48.            Result:=Target.AsInteger;
  49.          end;
  50. procedure TProxyValue.wrAsInteger;
  51.          begin
  52.            Target.AsInteger:=Result;
  53.          end;
  54. function TProxyValue.rdAsBoolean;
  55.          begin
  56.            Result:=Target.AsBoolean;
  57.          end;
  58. procedure TProxyValue.wrAsBoolean;
  59.          begin
  60.            Target.AsBoolean:=Result;
  61.          end;
  62. function TProxyValue.rdAsVariant;
  63.          begin
  64.            Result:=Target.AsVariant;
  65.          end;
  66. procedure TProxyValue.wrAsVariant;
  67.          begin
  68.            Target.AsVariant:=Result;
  69.          end;
  70. function TProxyValue.rdAsFloat;
  71.          begin
  72.            Result:=Target.AsFloat;
  73.          end;
  74. procedure TProxyValue.wrAsFloat;
  75.          begin
  76.            Target.AsFloat:=Result;
  77.          end;
  78. function  TProxyValue.rdValues;
  79.          begin
  80.            Result:=Target.Values[s];
  81.          end;
  82. procedure TProxyValue.Exec;
  83.          begin
  84.            Target.Exec(S,MustReturn);
  85.          end;
  86. function  TProxyValue.CreateEqu;
  87.          begin
  88.            Result:=TProxyValue.CreateFrom(Target);
  89.          end;
  90. constructor TProxyValue.CreateFrom(aTarget:ILangValue);
  91.             begin
  92.               Inherited Create(nil);
  93.               Target:=aTarget;
  94.             end;
  95. function    TProxyValue.HasValue;
  96.             begin
  97.               Result:=Target.HasValue(s);
  98.             end;
  99. constructor TProxyValue.Create;
  100.             begin
  101.               Inherited Create(o);
  102.               Target:=Nil;
  103.             end;
  104. function    TProxyValue.CreateSame;
  105.             begin
  106.               Result:=Inherited CreateSame(o);
  107.               (Result as TProxyValue).Target:=Target;
  108.             end;
  109.  
  110. end.
  111.