jupp
Aus Sicht des Programmierers:
Code:
strict private nur innerhalb der selben Klassendeklaration verfügbar
private ..., aber innerhalb der
Unit unbeschränkt
strict protected nur innerhalb der eigenen und in abgeleiteten klassen verfügbar
protected ..., aber innerhalb der
Unit unbeschränkt
public überall sichtbar wo auch die Klasse sichtbar ist
published ... und im
OI sichtbar
Das Strict wurde erst recht spät implementiert.
Aber im
OI wird nur etwas angezeigt, was einfache Standardtypen sind, oder wofür entsprechende Property-Erweiterungen installiert sind.
Für einen irgendeinen Record ist standarmäßig garnichts installiert.
property Pos: TPoint read ... write ...;
kannste vergessen.
In neueren Delphis meckert der Compiler sowas auch gleich an.
Früher gab es zur Leufzeit kleine Probleme, bei einer Zuweisung ... es wirde einfach nichts zugewiesen.
MyObject.Pos.X := 123;
.
wird nach
Delphi-Quellcode:
temp := MyObject.Pos;
temp.X := 123;
übersetzt. (temp = delphiinterne temporäre Variable)
Und wie man sich denken kann, wird somit nichts
an Pos übergeben, da nur der Getter aufgerufen wird.
Kannste gerne mal ganz leicht ausprobieren, indem du einen Setter implementierst und schaust, ob man mit dem Debugger darin landet.