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