Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#13

AW: Variablen einer Klasse mittels propertys zur Verfügung stellen

  Alt 6. Jan 2012, 17:57
Okay, hab' ich schon befürchtet, daß ich jetzt ungefähr 85000 neue getter und setter brauche...
Nicht zwangsläufig:
Delphi-Quellcode:
TCustomGrafik = class(TGrafik)
   public
     AInteger1: integer;
     AInteger2: integer;
     AInteger3: integer;
   end;
   TForm1 = class(TForm)
   protected
     fGrafik: TCustomGrafik;
     function GetIntVar(aIndex: Integer): Integer; virtual;
     procedure SetIntVar(aIndex: Integer; aValue: Integer); virtual;
   public
     property AInteger1: integer Index 0 read GetIntVar write SetIntVar;
     property AInteger2: integer Index 1 read GetIntVar write SetIntVar;
     property AInteger3: integer Index 2 read GetIntVar write SetIntVar;
   end;

implementation

function TForm1.GetIntVar(aIndex: Integer): Integer;
begin
  case aIndex of
    0: result := fGrafik.AInteger1;
    1: result := fGrafik.AInteger2;
    2: result := fGrafik.AInteger3;
    else raise Exception.Create('Invalid Index');
  end;
end;

procedure TForm1.SetIntVar(aIndex: Integer; aValue: Integer);
begin
  case aIndex of
    0: fGrafik.AInteger1 := aValue;
    1: fGrafik.AInteger2 := aValue;
    2: fGrafik.AInteger3 := aValue;
    else raise Exception.Create('Invalid Index');
  end;
end;
Aber wie bereits erwähnt wurde ist die objektorientierte Variante besser (also über FormInstanz.Grafik.Property)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat