Hallo,
Ich hätte da mal eine Frage zur Deklaration von Klassen.
Und zwar deklariere ich bisher meine Klassen wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| interface
type TEnhFModSys = class end;
TCallbackThread = class(TThread) end;
TEnhFSoundStream = class private FCBThread: TCallbackThread; end; |
TCallbackThread muss vor TEnhFSoundStream deklariert werden, weil ich ja ein Field habe, daß von diesem Typ ist. Wenn ich diese Unit jetzt irgendwo einbinde, habe ich logischerweise Zugriff auf die Klasse TEnhFModSys und TEnhFSoundStream. Aber ich kann auch auf TCallbackThread zugreifen, was nicht sein sollte.
Kann man eine Deklaration zwar im interface-Teil haben, sie aber trotzdem verstecken, sodaß sie außerhalb dieser Unit nicht sichtbar ist?
Deklariere ich die Klasse erst im implementation-Teil, findet er natürlich den Datentyp für mein Field FCBThread nicht, eine globale Variable, die erst im implementation-Abschnitt deklariert wird, ist wegen der Möglichkeit, TEnhFSoundStream mehrmals zu instanziieren nicht akzeptabel.
In eine seperate Unit sollte TCallbackThread nur ausgelagert werden, wenn es wirklich nicht anders geht.
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk.