Das Datenmodul in Delphi

Eine sinnvolle Einrichtung in Delphi ist das Datenmodul. Viele Entwickler fügen Ihre Table- oder Querykomponenten immer noch direkt dem Formular zu und erstellen auch den ganzen Code, der für die Datenbankzugriffe notwendig ist, direkt im Formular. Viel sinnvoller ist es aber ein Datenmodul zu verwenden, um datenorientierte Routinen von der Formularebene zu trennen. Auch wenn man hierbei sicher noch nicht von einer echten Mehrschichtigkeit reden kann, ist es doch ein erster Schritt dahin und die Anwendung ist recht einfach.

Sinnvoll ist es zunächst für Formulare und Datenmodule eigene Unterverzeichnisse zu erstellen,

z.B.
\meinProjekt\forms
\meinProjekt\datenmodule

Einheitliche Namensgebung für Ihre Formulare und Datenmodule

Ebenfalls sinnvoll ist es eine bestimmte einheitliche Namensgebung für Formulare und Datenmodule zu verwenden. Da gibt es sicher viele Regelungen und jeder hat seinen eigenen Ansatz, aber letztlich ist nur wichtig, dass es für Sie eindeutig ist.

Ich verwende folgendes:

Formularname : frmFormular    (frmAdressen)
Formularunit:   vFormular  (vAdressen)

Datenmodulname: dmFormular   (dmAdressen)
Datenmodulunit: datamod_formular  (datamod_Adressen).

Um ein Datenmodul hinzuzufügen klicken Sie einfach recht in der Projektverwaltung auf das Projekt und wählen
Neue hinzufügen’ – ‘Weitere’ – ‘Delphi Dateien’ – ‘Datenmodul’.

Um das neue Datenmodul (nach Namensvergabe und Speichern!) in dem dazugehörigen Formular verwenden zu können, müssen Sie es im ‘Uses’ – Abschnitt dem Formular hinzufügen.

Mit dem Datenmodul arbeiten

Nun können Sie Ihre Table/Query dem Datenmodul hinzufügen. Um auf diese aus dem Formular heraus zugreifen zu können, geben Sie in den entsprechenden Formularabschnitten dann einfach dmFormular.table… ein.

Aber halt…

Zunächst müssen Sie das Datenmodul natürlich erstellen. Natürlich können Sie dies automatisch erzeugen lassen (unter Projektoptionen-Formular), wobei Sie u.U. auf die Reihenfolge der Erzeugung achten müssen, i.d.R. dabei zunächst das Datenmodul, dann das Formular.

Sinnvoller ist es aber zumeist dies manuell zu machen. Hierzu im Create-Abschnitt des Formulars:
dmFormular:=TdmFormular.create(frmFormular);

Wenn Sie dabei in Create das Formular angeben, so wird das Datenmodul beim Freigeben des Formulars automatisch freigegeben.

Erstellen Sie es über folgenden Weg:
dmFormular:=TdmFormular.create(nil);

müssen Sie sich selbst um die Freigabe (z.B. im Destroy-Event der Form) kümmern:

dmFormular.free;

Sinnvoll ist es auch
dmFormular:=Nil zu setzen;

Noch einige Tipps:

Wie können Sie aus dem Datenmodul heraus auf Elemente des Formulars zugreifen?

Ganz einfach: frmFormular.labelXY (als Beispiel). Natürlich müssen Sie aber die Form dem Datenmodul hinzufügen.
Das geht allerdings nicht im Interface-Abschnitt, da dies zu einem Circular-Reference-Konflikt führen würde. Fügen Sie also die Form unterhalb von ‘Implementation’ hinzu.

Implementation
Uses frmFormular;

Es könnte sein, dass Sie bereits in FormCreate – Abschnitt auf Methoden des Datenmoduls zugreifen müssen, die wiederum das Formular refenzieren. Dies wird zu einem Konflikt führen. Umgehen Sie dies, indem Sie in FormCreate als erste Zeile

frmFormular:=self;

einfügen.

Alles was Ihre Daten bearbeitet, sollte nun in Prozeduren und Funktionen innerhalb des Datenmoduls geregelt werden, rufen Sie diese Methoden dann in den entsprechenden Events (z.B. in einem OnClick-Event eines Buttons) auf. Vermeiden Sie es datenorientierte Routinen direkt in den Events zu implementieren.

Damit haben Sie bereits einen großen Schritt hin zu einem übersichtlicheren und leichter zu pflegenden Code getan. Dies erleichtert auch den Austausch von GUI-Komponenten, da Sie in den entsprechenden Events des neuen Formulars nur noch die dazugehörenden Datenmodul-Methoden einfügen müssen.

Werbung

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Angebote bei Acer
Acer Gaming Week: Bis zu 15% Rabatt auf Acer Gaming Notebooks, PCs und Zubehör bis 21. August 2018


Angebote bei HP
» HP Back To School 2018: Viele HP Notebooks, Convertibles und Drucker im Angebot
» HP 10% Gutschein für All-in-One PCs:10% Rabatt mit HP Gutschein HPTD1XA818 die HP All-in-One PCs im HP Store in dieser Liste


Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten


Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick


Aktuelle Bitdefender Aktionen:
» Top Angebot: Bitdefender "The Darkest Minds Promotion" mit kostenlosem Gewinnspiel und Angebot Total Security 2019 MultiDevice nur 39,99€ statt 79,99 Euro (50% Rabatt)
» Bitdefender Sommer-Aktion Version 2019 mit 25% auf Bitdefender Antivirus Plus 2019 (3 Geräte und 1 Jahr), 42% auf Bitdefender Internet Security 2019 (3 Geräte und 1 Jahr) und 50% auf Bitdefender Total Security Multi Device 2019 (5 Geräte und 1 Jahr)
» Bitdefender +1 Jahr dazu-Aktion
» Top für neue PCs! Bitdefender AntiVirus Plus Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.