Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Variablen einer Klasse mittels propertys zur Verfügung stellen (https://www.delphipraxis.net/165578-variablen-einer-klasse-mittels-propertys-zur-verfuegung-stellen.html)

Stevie 6. Jan 2012 15:25

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

Zitat von DeddyH (Beitrag 1144682)
Es kommt IMHO darauf an, wer die Instanz zur Verfügung stellt.

Deshalb war diese Frage auch an den TE gerichtet. :wink:

DeddyH 6. Jan 2012 15:27

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

SirThornberry 6. Jan 2012 16:57

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

Zitat von Bjoerk (Beitrag 1144662)
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)

Bjoerk 6. Jan 2012 18:37

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

Zitat von Stevie (Beitrag 1144684)
Zitat:

Zitat von DeddyH (Beitrag 1144682)
Es kommt IMHO darauf an, wer die Instanz zur Verfügung stellt.

Deshalb war diese Frage auch an den TE gerichtet. :wink:

Sorry, komm' erst jetzt wieder dazu zu antworten, hab‘ die ganze Zeit daran gearbeitet.

Nein da gibt es keinen besonderen Grund, ist historisch begründetet. Ob jetzt von TForm nach TGrafik oder umgekehrt wäre mir eigentlich egal. Die Form stellt ein Image und Flags zur Verfügung, die TGraphik braucht, mehr nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz