Hallo-
Ich komme auf keinen grünen Zweig, wo im Jahr 2013 des Herrn sich noch ein Unterschied von
published zu
public verbirgt. Als Delphi anscheinend noch nur rudimentäre
RTTI-Konzepte verfügte, musste man Member einer Klasse wohl explizit mit published kennzeichnen um mittels
RTTI überhaupt darauf zugreifen zu können.
Die
RAD-Hilfe (Stand: XE4) schreibt hierzu:
C++:
Zitat:
Das Schlüsselwort __published wurde zur Unterstützung der
VCL hinzugefügt. Dieser öffentliche Member-Zugriffsspezifizierer entspricht dem public Spezifizierer, aber __published verfügt über vom Compiler erzeugte
RTTI (
Run-Time Type Identification, Identifikation von Typen zur Laufzeit). Das bedeutet, dass die __published Eigenschaften beim Entwurf im Objektinspektor erscheinen.
(Quelle)
Delphi:
Zitat:
Bei Klassen, die von TPersistent abgeleitet sind, werden in einem published-Abschnitt Eigenschaften und Ereignisse deklariert, die zur Entwurfszeit verfügbar sind. Ein published-Element hat dieselbe Sichtbarkeit wie ein public-Element, aber der Compiler erzeugt Laufzeittypinformationen für die published-Elemente. published-Eigenschaften erscheinen zur Entwurfszeit im Objektinspektor.
(Quelle)
Besonders im Delphi-Fall scheint das wieder etwas zu sein, was seit zehn Jahren dort steht und seitdem niemand mehr angefasst hat. Denn entweder liege ich komplett daneben, oder
- Ich komme mittels RTTI genauso auf die public-Elemente
- Kann ich mir im Objektinspektor auch alles mit beliebigem Sichtbarkeitsmodifikator anzeigen lassen
Möglicherweise irre ich mich in zwei Dingen:
- Mit Objektinspektor ist etwas vollkommen anderes gemeint als ich verstehe - Beispielsweise irgendetwas beim Debuggen?
- Mittels RTTI kann ich über published Member noch viel Mehr in Erfahrung bringen, als über schnöde public Member. Nur was?
Ich freue mich auf
Erleuchtung