Einzelnen Beitrag anzeigen

Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Versteckte Klasse entwickeln.

  Alt 21. Jul 2009, 09:31
Zitat von Christian18:
gibt es in Delphi die Möglichkeit eine ganze Klasse zu verbergen? Ich habe davon gehört, dass man einzelne Methoden verbergen kann.
Leider kennt Delphi keine Attribute für Klassen (in VB.NET oder C# kann man Klassen als "private" markieren).

Die beste Entsprechnung dazu in Delphi wäre eine Klasse die im "implementation" Teil der Unit deklariert wird. Diese kann dann nur innerhalb dieser Unit benutzt werden. Wenn man selbst davon andere Klassen ableiten will gibt es allerdings Probleme. Verwendet man eine Forward-Deklaration wie hier:

Delphi-Quellcode:

uses
  classes, [.....];

type
  TDefault = class;
  TDefaultAbgeleitet = class(TDefault)
    procedure Test; override; // hier Compiler Fehlermeldung!!
  end;

implementation

type
  TDefault = class(TObject)
    procedure Test; virtual;
  end;

end.
Dann erhält man vom Compiler die Meldung, dass die Klasse TDefault noch nicht vollständig implementiert sei.

Ein "verstecken" von Klassen im implementation-Teil ist also nur dann machbar wenn man die Klasse nicht selbst erweitern will. (dazu müsste man im Beispiel die Forward-Deklaration weglassen und könnte keine "TDefaultAbgeleitet" deklarieren) Immerhin könnte man so lokale Klassen mit Hilfsroutinen erzeugen die ausserhalb der Unit nicht sichtbar sind.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat