![]() |
Variablen einer Klasse mittels propertys zur Verfügung stellen
Wie kann man denn Variablen einer Klasse eine anderen Klasse mittels property‘s zur Verfügung stellen, so geht’s schon mal nicht.:cry:
Delphi-Quellcode:
TCustomGrafik = class(TGrafik)
public AInteger: integer; end; TForm1 = class(TForm) public Grafik: TCustomGrafik; property AInteger: integer read Grafik.AInteger write Grafik.AInteger; end; |
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Delphi-Quellcode:
TCustomGrafik = class(TGrafik)
public AInteger: integer; end; TForm1 = class(TForm) private FGrafik: TCustomGrafik; procedure SetAInteger(Value: integer); function GetAInteger: integer; public property AInteger: integer read GetAInteger write SetAInteger; end; procedure TForm1.SetAInteger(Value: integer); begin FGrafik.AInteger := Value; end; function TForm1.GetAInteger: integer; begin Result := FGrafik.AInteger; end; |
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Okay, hab' ich schon befürchtet, daß ich jetzt ungefähr 85000 neue getter und setter brauche...
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Gehört nicht in die Klasse TCustomGrafik?
Delphi-Quellcode:
TCustomGrafik = class(TGrafik)
private FAInteger: integer; public property AInteger: integer read FAInteger write FAInteger; end; |
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Sehe ich auch so, war aber zu faul, das zu ändern :zwinker:
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Sehe ich grundsätzlich auch so, dann geht aber noch nichtmal ein Inc usw.. Bin mit den propertys von Delphi etwas unglücklich...
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Zitat:
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Ja, nutze ich (gelegentlich) übers Kontextmenü, weil ich mir den Shortcut nie merken kann..
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Gibt es einen Grund, die Properties von TGraphic über das Form zu Verfügung zu stellen, anstatt sie direkt von dem Graphic Objekt zu benutzen, welches dann nur über eine Property vom Form zur Verfügung gestellt wird?
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Es kommt IMHO darauf an, wer die Instanz zur Verfügung stellt.
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Zitat:
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Achso :lol:
|
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Zitat:
Delphi-Quellcode:
Aber wie bereits erwähnt wurde ist die objektorientierte Variante besser (also über FormInstanz.Grafik.Property)
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; |
AW: Variablen einer Klasse mittels propertys zur Verfügung stellen
Zitat:
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 01:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz