Wo sind die Delphi-Attribute der Realen Welt Beispiele dafür?
Ich weiß von TMS Aurelius, die wir verwenden können, die "neuen" 2010-Attribute Funktion serialisiert die Datenbank-Tabelle Felder in Objekt-Eigenschaften zur Laufzeit, zum Beispiel, und ich bin kein Experte auf diesem tiefen objektorientierte schema, so schaue ich in die TMS-source-code und könnte nicht verstehen wie es zu implementieren, mich, nicht für die DB, nicht für XML.
So, ich habe mir für alle Google-Ergebnisse auf Delphi Attributes
und alle, die die Leute posten, sind Erklärung, Beispiele und Stoppt dann sogar vor, zeigen Ihre Beispiele in Aktion.
Wo sind dann die realen Welt Beispiele dafür, wie können wir das Projekt erklären, code und VERWENDEN Sie diejenigen, die juiced-Klassen in einem Formular/code ausführen?
Hat jemand ein Beispiel hier, oder Sie wissen, ein guter Artikel, der abgeschlossen ist?
Edit1:
Sollte die Antwort ein TForm
mit einem TButton
wo, wenn geklickt haben, führen Sie einige verwenden der Attribut-Klassen erstellt wurden, nicht zu beantworten zeigt nur die attribute und Klassen, Schnittstellen, da gibt es viele von denen, Erklärung, Beispiele, wie gesagt, vor
- es gibt einige Texte, wo der Autor die Mühe macht, zu erstellen Sie eine vollständige Datei mit der Erklärung und der Konstruktion der Methoden und interessante Verwendung der Attribute aber gibt uns kein Beispiel es Verwendung.
- Ich wäre am meisten interessiert - kam auf das gleiche 'problem' vor einiger Zeit und habe noch nie verwendet Attribute, da sehe ich nicht den nutzen.
- Ich denke das grundlegende problem ist, dass so viele lange Zeit Delphi Programmierer so verwendet werden, um nicht mit Ihnen, die wir noch nicht gefunden, viele Orte, wo Sie einen klaren Vorteil über die Art und Weise haben wir Dinge getan. Für eine Menge von 3rd-party-Komponenten-Anbieter, die umfassende Nutzung von Attributen, die verhindert, dass Sie von der Ausrichtung auf Anwender älterer Delphi-Versionen, die Begrenzung Ihrer Märkte noch mehr.
- mit einem Häkchen auf diesen link docwiki.embarcadero.com/RADStudio/XE4/de/...
- es hängt davon ab, was ist Ihr problem-domain: typische Anwendung Programmierer nicht definieren seine/Ihre Attribute wahrscheinlich. Primär ist dies das instrument zu bedienen und mit zusätzlichen Informationen (Metadaten) in Zusammenhang mit den traditionellen Daten-Typen in der Laufzeit, wenn die Entwicklung etwas generisch, wie z.B. Allgemeine Zweck ORM-framework.
- es ist jetzt klar das Beispiel auf Embarcadero, wir könnten uns zum Beispiel die Verwendung in einem web-PageController wie Klasse, Nachkomme von einem Controller, der Authentifizierung erfordert, und jeder PageController könnte ein Attribut Annotation sagen, welche Ebene der Benutzer ist zwingend für die auf dieser Seite gezeigt zu werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, erklären Sie eigene attribute, die Sie tun können, Sie es wie folgt:
Ein Attribut ist eine reguläre Klasse, dass hat der TCustomAttribute als sein Vorgänger. Implementieren Sie es wie gewohnt:
Nun das Attribut deklariert und implementiert, können Sie es einfach verwenden:
So, jetzt haben Sie ein Attribut deklariert und implementiert-und Sie haben es genutzt, um add eine Anzeige-label an einer Klasse. Die Letzte phase ist die Verwendung dieses Attributs, da haben Sie eine Klasse dekoriert mit ihm. Der code, der verwendet das Attribut nicht, befindet sich im Attribut noch die dekorierte Klasse, die es implementiert ist, in der service-Schicht, die Dekoration.
Lassen Sie uns sagen, dass wir eine Klasse haben, gibt eine möglich Anzeige Bezeichnung für eine Klasse:
Dass die Methode prüft dann, ob eine Klasse und gibt die angezeigte Beschriftung, da es existiert. Ansonsten ist es eine leere Zeichenfolge zurück:
GrantedTo
Attribut, die verwendet wurden, zu assoziieren bestimmte Teile der form eine gewisse Rolle spielt. Der Benutzer, der hatte so eine Rolle würde erlaubt werden, zur Durchführung der delete-operation. Andere tun es nicht!Ich muss sagen, dass es nicht viel ist mir klar, was für eine Art Beispiel, brauchen Sie. IMHO in http://docwiki.embarcadero.com/RADStudio/Rio/en/Overview_of_Attributes ist alles was Sie benötigen, vielleicht, vorausgesetzt, Sie haben einige Grundkenntnisse in der Beschreibung und/oder der Aspekt der Programmierung bzw.
Beispiel hängt von der Art/Zweck ein Autor von besonderem SW verwendet, Attribute für. Sie erwähnt das ORM-system: die typische Verwendung ist hier zu kommentieren Mitglied der Klasse, die DB-Einheit mit zusätzlichen Informationen, die notwendig für DB-Vorgang im backend von solchen Rahmen. Lassen Sie uns annehmen, dass Sie eine DB-Einheit mit Feld FIRMA CHAR(32) not NULL, und Sie möchten, stellen es in der Delphi-Klasse:
dann legen Sie das Attribut TCharColumn mit Konstruktor
Und Verwendung dieser annotation könnte wie folgt Aussehen:
Diesem Stück das Programm zeigt, wie die Felder zu definieren, die in einem dataset zur Laufzeit basierend auf der annotation in Delphi. Wir sind begrenzt, etwas aufgrund mangelnder benannte Parameter, daher arbeitet mit der parameter-Liste ist nicht flexibel, wie es sein sollte wie z.B. in Java (Vergleiche TMS Aurelius Beschriftungs-set http://www.tmssoftware.com/site/manuals/aurelius_manual.pdf und http://www.techferry.com/articles/hibernate-jpa-annotations.html
Create
Methode, das framework liest die Datenbank und ermöglichen es uns, gebenMyString := MyORM.TableName.TableField;
und in Ihrem Beispiel müssen Sie deklarieren[TCharColumn('COMPANY', 32, false)]
. Hab ich das falsch verstanden, die Reale Nutzung der Attribute?Nicht sicher, ob die Frage fragt nach der realen Welt Beispiele dafür-Attribut verwenden, oder das serialisieren db-Tabellen in Objekte mit Attributen. Das Beispiel unten ist eine erfundene einfache (aber ein Beispiel, nichts weniger als das) zeigt, wie die Attribute Protokollierung von änderungen an Objekt-Eigenschaften.
Definieren Sie Ihr benutzerdefiniertes Attribut
Den "Hallo Welt" der Klassen TProduct mit dem Attribut
Jede Klasse, die eine "loggable Attribut" übergeben werden kann, um diese Methode zu Durchlaufen und die Eigenschaften und protokollieren Sie.
Ende;
Anwendungsbeispiel:
T
vor Ihnen. Auch dieAttribute
Teil des namens weggelassen werden können in der annotation. So ein Attribut namensLoggableAttribute
verwendet werden können, etwa so:[Loggable('test')]
.