Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriff auf Public nur aus bestimmer Klasse? (https://www.delphipraxis.net/113901-zugriff-auf-public-nur-aus-bestimmer-klasse.html)

.chicken 16. Mai 2008 13:36


Zugriff auf Public nur aus bestimmer Klasse?
 
Kann ich den Zugriff auf eine Public Variable nur aus bestimmten Klassen erlauben? Ich muss das Direct3D-Device bei der Arbeit an meiner 2D-Engine leider Public deklarieren, will aber, dass man nur aus meinen Engine-Klassen darauf zugreifen kann, sodass man im späteren Gebrauch der Engine nichts am Device einstellen kann.

Ich hoffe ihr versteht was ich meine.

Und noch ne Mini-Frage: Kann man Public-Variablen von der Vererbung ausschließen?

mkinzler 16. Mai 2008 13:38

Re: Zugriff auf Public nur aus bestimmer Klasse?
 
Packe es in eine Basisklasse

.chicken 16. Mai 2008 14:10

Re: Zugriff auf Public nur aus bestimmer Klasse?
 
Wie genau meinstn du das? Suche hat mir nicht so richtig geholfen :-\

himitsu 16. Mai 2008 14:23

Re: Zugriff auf Public nur aus bestimmer Klasse?
 
du kannst auch die Klassenvariable erstmal als "private" deklarieren und dann ihre Sichtbarkeit ändern.


z.B.:
bei Funktionen und Properties kann man das leicht die Sichtbarkeit erhöhen (sichtbarer machen ... nur Erniedrigen geht nicht)
Delphi-Quellcode:
interface

// öffentlich
type
  Txyz = Class
  private
    _Direct3D: Tirgendwas;
    proberty Direct3D: Tirgendwas read Direct3D write Direct3D;
  end;

implementation

// privat
type
  TxyzPrivat = Class(Txyz)
  public
    proberty Direct3D;
  end;
oder man definiert sich nur intern eine höhere Sichtbarkeitsstufe:
Delphi-Quellcode:
interface

// öffentlich
type
  Txyz = Class
  private
    _Direct3D: Tirgendwas;
  end;

implementation

// privat
type
  TxyzPrivat = Class(Txyz)
  public
    proberty Direct3D: Tirgendwas read Direct3D write Direct3D;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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