Man kann das Verhalten von Private innerhalb einer
Unit auch als Designfehler betrachten, der aus Kompatibilitätsgründen nicht direkt behoben werden konnte.
Man kann nicht nur, man muss, denn das Verhalten vom "protected" ist in dieser Hinsicht genau dasselbe (zumindest im Delphi7):
Delphi-Quellcode:
type
TForm1 = class(TForm)
protected
Procedure ProtectedProc();
end;
var
Form1: TForm1;
implementation
Procedure TForm1.ProtectedProc();
begin
end;
procedure Main();
begin
Form1.ProtectedProc(); // kein Fehler !!!
end;
Edit - Anmerkung: Ich habe nur das von der
IDE vorgefertigte Projekt ergänzt und gekürzt. Das es als Programm so nicht laufen kann, ist mir klar.