Einzelnen Beitrag anzeigen

Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#3

Re: Objekt-Eigenschaft mit anderem Objekt verbinden, evtl Ze

  Alt 17. Apr 2010, 20:39
Hab gerade kein Delphi da, gebe also keine Garantie für syntaktische Richtigkeit:
Delphi-Quellcode:
type
  TDataName = (X, Y, Z);

  TData = array [TDataName] of Double;

  TCalcData = class
  private
    FData: TData;
  protected
    function GetValue(Name: TDataName): Double;
    procedure SetValue(Name: TDataName; AValue: Double);
  public
    property Value[Name: TDataName]: Double read GetValue write SetValue; default;
  end;

  TInputBlock = class
  private
    FSource: TCalcData;
    FDataName: TDataName;
  protected
    procedure SetValue(Value: Double);
  public
    constructor Create(Source: TCalcData; DataName: TDataName);
  end;

..
  procedure TInputBlock.SetValue(Value: Double);
  begin
    if Value <> FSource[FDataName] then
      FSource[FData] := Value;
  end;
..

  InpX := TInputBlock.Create(MyCalcData, X);
Statt F_X und F_Y also ein Array und ein passender Aufzählungstyp um auf "X" und "Y" zuzugreifen.

Grüsse, Dirk
  Mit Zitat antworten Zitat