Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.178 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Unterschied Sichtbarkeitsmodifikator 'Published' zu 'Public'

  Alt 21. Mai 2013, 11:24
Delphi-Version: XE2
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
  Mit Zitat antworten Zitat