Was ist der Unterschied zwischen öffentlichen und veröffentlichten Klassenmitgliedern in Delphi?
Könnte bitte jemand mir erklären was ist der Unterschied zwischen der öffentlichen und veröffentlichten die Schüler in Delphi?
Habe ich versucht zu schauen, Delphi Hilfe und ich verstehe, dass diese Mitglieder haben die gleiche Sichtbarkeit, aber ich verstehe nicht sehr gut wie Sie sich unterscheiden und Wann sollte ich veröffentlicht Mitglieder statt der öffentlich-rechtlichen.
Vielen Dank.
InformationsquelleAutor der Frage Ondra C. | 2010-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffentlichen Eigenschaften und Eigenschaften veröffentlicht haben, die gleiche Sicht, wie du schon gesagt hast. Published-Eigenschaften sind in RTTI, öffentliche Eigenschaften nicht.
InformationsquelleAutor der Antwort R-D
Generiert der compiler RTTI (Run-Time Type Information) - Metadaten für veröffentlichte, von Mitglieder, aber nicht für die Mitglieder (per default). Der wichtigste Effekt ist, dass die published-Eigenschaften des Objekts erscheinen im Objektinspektor zur Entwurfszeit.
Ich weiß nicht, ob Sie erstellen von Komponenten, aber wenn Sie das tun, werden Sie wahrscheinlich wissen, die Eigenschaften und Ereignisse werden normalerweise veröffentlicht, so dass Sie können Sie über den Objekt-Inspektor.
Öffentlichen
MyProperty
wird nicht werden visisble im Objekt-Inspektor.Veröffentlicht
MyProperty
werden visisble im Objekt-Inspektor.InformationsquelleAutor der Antwort Andreas Rejbrand
Als eine Randnotiz, es gibt eine andere spezielle Sache mit veröffentlicht:
Den Standard-Sichtbarkeit der Schüler ist
published
so überprüfen Sie für unsicheren code wie:Name
Password
undDecryptPassword()
sind sichtbar 'world-wide'.InformationsquelleAutor der Antwort mjn
Published-Eigenschaften exportieren die Laufzeit-Typinformationen (RTTI).
Haben Sie einen Blick hier über die RTTI von Delphi
InformationsquelleAutor der Antwort Ray
Es scheint, es gibt viele gute Antworten bereits, weist den Objekt-Inspektor, RTTI,
etc. Diese sind alle Teile des Puzzles.
Wenn Sie nehmen die veröffentlichten Suchbegriff, den gesamten Delphi-RAD-tool design würde erfordern irgendeine Art und Weise angeben, welche Eigenschaften gespeichert werden, in einer DFM, geprüft in der Komponente, im Eigenschafteninspektor und kann neu geladen werden zur Laufzeit aus einer DFM, wenn das Formular oder Datenmodul erstellt wird.
Diese, in einem Wort, ist das, was Veröffentlicht ist. Es ist interessant für mich, dass die Entwickler von QT (ursprünglich von TrollTech, später Teil von Nokia, später noch Spin-off zu Digia) hatte zu emulieren, diese Ebene der RTTI für Ihre C++ - RAD-Bibliothek "QT", das hinzufügen einer "veröffentlichten" entspricht und eine "Eigenschaft" entspricht, während die Reine C++ fehlt noch immer das grundlegende Einrichtung.
InformationsquelleAutor der Antwort Warren P
Runtime Type Informations (RTTI) werden nur generiert, für
published
Klasse Mitglieder.InformationsquelleAutor der Antwort splash
Zur LaufzeitEinträge in der veröffentlichten und öffentlichen Bereichen sind gleichermaßen zugänglich.
Den prinzipiellen Unterschied zwischen Ihnen ist, dass veröffentlichten Elemente einer Komponente erscheinen in der Objektinspektor zur Entwurfszeit.
Dies geschieht, da für die Felder im Abschnitt veröffentlicht RTTI automatisch generiert.
Objekt-Inspektor wählt dieses und verwendet es, um zu identifizieren, was Sie auf hinzufügen, um die Liste der Eigenschaften und Ereignisse.
InformationsquelleAutor der Antwort Bharat
Zusätzlich zu den anderen Antworten:
Published-Eigenschaften werden automatisch gespeichert durch das streaming-system.
Zum Beispiel, wenn Sie einen TComponent - Nachfahren Beispiel und Schreibe es auf einen TStream mit WriteComponent, alle (gut, nicht alle, aber das ist eine andere Frage) veröffentlicht Eigenschaften in den stream geschrieben werden ohne weitere Codierung.
Natürlich, das streaming-system nur tun können, weil die RTTI ist für diejenigen, die published-Eigenschaften.
InformationsquelleAutor der Antwort Uwe Raabe