Anatomie einer Delphi-Einheit (Delphi für Anfänger)

Wenn Sie vorhaben, ein guter Delphi-Programmierer zu sein, müssen Wörter wie "Schnittstelle", "Implementierung" und "Verwendung" einen besonderen Platz in Ihren Programmierkenntnissen einnehmen.

Delphi-Projekte

Wenn wir eine Delphi-Anwendung erstellen, können wir mit einem leeren Projekt, einem vorhandenen Projekt oder einer Delphi-Anwendung oder einer Formularvorlage beginnen. Ein Projekt besteht aus allen Dateien, die zum Erstellen unserer Zielanwendung benötigt werden. 

Über das Dialogfeld, das bei Auswahl von View-Project Manager angezeigt wird, können wir auf das Formular und die Einheiten in unserem Projekt zugreifen. 

Ein Projekt besteht aus einer einzelnen Projektdatei (.dpr), in der alle Formulare und Einheiten im Projekt aufgelistet sind. Wir können die Projektdatei anschauen und sogar bearbeiten (nennen wir sie a Projekteinheit), indem Sie Ansicht - Projektquelle wählen. Da Delphi die Projektdatei verwaltet, sollte es normalerweise nicht erforderlich sein, sie manuell zu ändern, und im Allgemeinen wird dies unerfahrenen Programmierern nicht empfohlen.

Delphi-Einheiten

Wie wir inzwischen wissen, sind Formulare ein sichtbarer Bestandteil der meisten Delphi-Projekte. Jedem Formular in einem Delphi-Projekt ist auch eine Unit zugeordnet. Die Unit enthält den Quellcode für alle Event-Handler, die an die Ereignisse des Formulars oder der darin enthaltenen Komponenten angehängt sind.

Da Units den Code für Ihr Projekt speichern, sind Units die Basis der Delphi-Programmierung. Im Allgemeinen ist unit eine Sammlung von Konstanten, Variablen, Datentypen sowie Prozeduren und Funktionen, die von mehreren Anwendungen gemeinsam genutzt werden können.

Jedes Mal, wenn wir ein neues Formular (.dfm-Datei) erstellen, erstellt Delphi automatisch die zugehörige Unit (.pas-Datei). Nennen wir sie a Form Unit. Einheiten müssen jedoch nicht mit Formularen verknüpft werden. EIN Code Unit Enthält Code, der von anderen Einheiten im Projekt aufgerufen wird. Wenn Sie mit dem Erstellen von Bibliotheken mit nützlichen Routinen beginnen, werden Sie diese wahrscheinlich in einer Codeeinheit speichern. Um eine neue Code-Unit zur Delphi-Anwendung hinzuzufügen, wählen Sie Datei-Neu… Unit.

Anatomie

Jedes Mal, wenn wir eine Unit erstellen (Formular oder Code-Unit), fügt Delphi die folgenden Codeabschnitte automatisch hinzu: Unit-Header, Schnittstelle Sektion, Implementierung Sektion. Es gibt auch zwei optionale Abschnitte: Initialisierung und Finalisierung.

Wie Sie sehen werden, müssen sich Einheiten in einer befinden vordefiniert formatieren, damit der Compiler sie lesen und den Code des Geräts kompilieren kann.

Das Gerätekopfzeile beginnt mit dem reservierten Wort Einheit, gefolgt vom Namen der Einheit. Wir müssen den Namen der Einheit verwenden, wenn wir in der uses-Klausel einer anderen Einheit auf die Einheit verweisen.

Interface-Bereich

Dieser Abschnitt enthält die Verwendet Klausel, die die anderen Einheiten (Code- oder Formulareinheiten) auflistet, die von der Einheit verwendet werden. Bei Formulareinheiten fügt Delphi automatisch die Standardeinheiten wie Windows, Nachrichten usw. hinzu. Wenn Sie einem Formular neue Komponenten hinzufügen, fügt Delphi der Verwendungsliste die entsprechenden Namen hinzu. Delphi fügt dem Interface-Abschnitt von Code-Units jedoch keine used-Klausel hinzu - dies muss manuell erfolgen.

In der Unit-Schnittstelle können wir deklarieren global Konstanten, Datentypen, Variablen, Prozeduren und Funktionen.

Beachten Sie, dass Delphi beim Entwerfen eines Formulars eine Formulareinheit für Sie erstellt. Der Formulardatentyp, die Formularvariable, die eine Instanz des Formulars erstellt, und die Ereignishandler werden im Schnittstellenteil deklariert. 

Da der Code in Codeeinheiten nicht mit einem zugeordneten Formular synchronisiert werden muss, verwaltet Delphi die Codeeinheit nicht für Sie.

Schnittstellenteil endet am reservierten Wort Implementierung.

Implementation Section

Das Implementierung Abschnitt einer Einheit ist der Abschnitt, der den tatsächlichen Code für die Einheit enthält. Die Implementierung kann zusätzliche eigene Deklarationen haben, obwohl diese Deklarationen für keine andere Anwendung oder Einheit zugänglich sind. Alle hier deklarierten Delphi-Objekte sind nur für Code innerhalb der Unit verfügbar (global zu Unit). Eine optionale uses-Klausel kann im Implementierungsteil erscheinen und muss unmittelbar nach dem Implementierungsschlüsselwort stehen.

Abschnitte zur Initialisierung und Finalisierung

Diese beiden Abschnitte sind optional. Sie werden nicht automatisch generiert, wenn Sie eine Einheit erstellen. Wenn du möchtest initialisieren Wenn das Gerät Daten verwendet, können Sie dem Initialisierungsabschnitt des Geräts einen Initialisierungscode hinzufügen. Wenn eine Anwendung eine Einheit verwendet, wird der Code im Initialisierungsteil der Einheit aufgerufen, bevor der andere Anwendungscode ausgeführt wird. 

Wenn Ihr Gerät beim Beenden der Anwendung eine Bereinigung durchführen muss, z. B. um die im Initialisierungsteil zugewiesenen Ressourcen freizugeben. Sie können eine hinzufügen Finalisierung Abschnitt zu Ihrem Gerät. Der Finalisierungsabschnitt folgt nach dem Initialisierungsabschnitt, jedoch vor dem endgültigen Ende.