Programmieren mit Pascal & Delphi

Arbeiten mit Delphi

Erste Schritte mit Delphi

Komponentenbibliothek Einführung

Mit Delphi 3.0 wurde mit den sogenannten "Packages" eine neue Technologie eingeführt. Ein Package ist eine spezielle dynamische Link-Bibliothek, die von Delphi-Anwendungen oder der Delphi-IDE verwendet wird. Um diese Bibliotheken von anderen DLLs zu unterscheiden, werden sie in Dateien mit der Dateinamenserweiterung DPL (Delphi Package Library) gespeichert.

Delphi unterscheidet zwischen zwei Arten von Packages:

  • Laufzeit-Packages,
  • Entwurfszeit-Packages.

Laufzeit-Packages werden genutzt, wenn der Benutzer eine Anwendung ausführt. Entwurfszeit-Packages werden verwendet, um Komponenten in der IDE von Delphi zu installieren und spezialisierte Eigenschaftseditoren für benutzerdefinierte Komponenten zu erzeugen. Ein einzelnes Package kann also gleichzeitig als Design- und Laufzeit-Package verwendet werden. Entwurfszeit-Packages rufen häufig Laufzeit-Packages auf.

Entwurfszeit-Packages stellen ein Standardmerkmal von Delphi dar. Sie erleichtern die Distribution und Installation benutzerdefinierter Komponenten. Laufzeit-Packages sind optional, bieten jedoch verschiedene Vorteile im Vergleich zur herkömmlichen Programmierung. Indem mehrfach verwendeter Code in eine Laufzeitbibliothek compiliert wird, kann er von mehreren Anwendungen genutzt werden. So können beispielsweise alle Anwendungen – einschließlich der Delphi-IDE – über Packages auf Standardkomponenten zugreifen. Da die Anwendungen keine eigenen Kopien der verwendeten Komponentenbibliotheken benötigen, sind die ausführbaren Dateien wesentlich kleiner. Das Resultat sind deutliche Einsparungen hinsichtlich der Systemressourcen und des benötigten Festplattenspeichers. Außerdem wird die Compilierung beschleunigt, da nur der für die Anwendung eindeutige Code compiliert werden muß. Man darf dabei jedoch nicht verkennen, daß auch die Packages relativ groß sind. Signifikante Vorteile ergeben sich dadurch erst dann, wenn mehrere Anwendungen auf einem Rechner installiert sind bzw. weitergegeben werden sollen, oder aber wenn eine Anwendung häufige Updates erfährt. In diesem Fall müßte jeweils nur die kleinere EXE-Datei distributiert werden, während die großen Packages unverändert blieben.

Packages in einer Anwendung einsetzen

Das Einbinden eines Packages in einer Anwendung erfolgt über den Dialog Projektoptionen, wo ein Register "Packages" Zugriff auf die Package-Einstellungen bietet:

Abbildung 1: Packages in Projekt einbinden

Im Dialog ist das Kontrollkästchen "Mit Laufzeit-Packages compilieren" zu markieren und ein oder mehrere Package-Namen in das zugehörige Eingabefeld einzugeben. Laufzeit-Packages, die installierten Entwurfszeit-Packages entsprechen, sind bereits in der Liste enthalten.

Vorteile der Packages

Über die Schaltfläche "Hinzufügen" können neue Packages hinzugefügt werden.

Wird das Eingabefeld Suchpfad im Dialogfeld Package hinzufügen verwendet, wirken sich die Änderungen auf den globalen Bibliothekssuchpfad von Delphi aus. Die Angabe der Dateinamenerweiterungen der Package-Dateien ist nicht erforderlich. Werden mehrere Namen in das Feld Laufzeit-Packages eingegeben, so müssen diese durch Semikolons voneinander getrennt sein. Ein Beispiel hierfür:

VCL30;VCLDB30;VCLDBX30

Neue Packages

Packages im Eingabefeld Laufzeit-Packages werden beim Compilieren automatisch in die Anwendung gelinkt. Doppelt angegebene Package-Namen werden ignoriert. Ist das Eingabefeld leer, wird die Anwendung ohne Packages compiliert. Laufzeit-Packages werden für das aktuelle Projekt ausgewählt. Sollen die aktuellen Einstellungen als Standardwerte für neue Projekte verwendet werden, kann dies durch das Markieren des Kontrollkästchens "Vorgabe" erfolgen.

Linken

Wird eine Anwendung mit Packages erstellt, müssen trotzdem die Namen der Delphi-Units in der uses-Klausel der Quelltextdateien angegeben sein.

Laufzeit-Packages

Laufzeit-Packages werden mit Delphi-Anwendungen weitergegeben. Ihre Funktionalität kann genutzt werden, wenn der Benutzer die Anwendung ausführt.

Damit eine Anwendung ausgeführt werden kann, die Packages verwendet, müssen auf dem Rechner die EXE-Datei der Anwendung und alle Packages (DPL-Dateien) verfügbar sein, auf die von der Anwendung zugegriffen wird. Ferner ist sicherzustellen, daß der Benutzer über die richtigen Versionen der DPL-Dateien verfügt.

Referenzieren

Delphi wird mit verschiedenen vorcompilierten Laufzeit-Packages (inklusive VCL30) ausgeliefert, um die grundlegenden Object Pascal- und VCL-Komponenten zu unterstützen. In früheren Versionen von Delphi wurde diese Funktionalität erreicht, indem die Komponentenbibliothek vollständig in jede Anwendung eingebunden wurde.

Das Package VCL30 enthält viele der häufig verwendeten Komponenten, Systemfunktionen und Windows-Schnittstellenelemente. Es sind jedoch keine Datenbank- oder Windows-3.1-Komponenten enthalten. Diese befinden sich in anderen Packages. Die folgende Tabelle beschreibt die mit Delphi ausgelieferten Laufzeit-Packages und die enthaltenen Units.

Package

Units

VCL30.DPL

Ax, Buttons, Classes, Clipbrd, Comctrls, Commctrl, Commdlg, Comobj, Comstrs, Consts, Controls, Ddeml, Dialogs, Dlgs, Dsgnintf, Dsgnwnds, Editintf, Exptintf, Extctrls, Extdlgs, Fileintf, Forms, Graphics, Grids, Imm, IniFiles, Isapi, Isapi2, Istreams, Libhelp, Libintf, Lzexpand, Mapi, Mask, Math, Menu, Messages, Mmsystem, Nsapi, Ole2I, Oleconst, Olectnrs, Olectrls, Oledlg, Penwin, Printers, Proxies, Registry, Regstr, Richedit, Shell-api, Shlobj, Stdctrls, Stdvcl, Sysutils, Tlhelp32, Toolintf, Toolwin, Typinfo, Vclcom, Virtintf, Windows, Wininet, Winsock, Winspool, Winsvc

VCLX30.DPL

Checklst, Colorgrd, Ddeman, Filectrl, Mplayer, Outline, Tabnotbk, Tabs

VCLDB30.DPL

Bde, Bdeconst, Bdeprov, Db, Dbcgrids, Dbclient, Dbcommon, Dbconsts, Dbctrls, Dbgrids, Dbinpreq, Dblogdlg, Dbpwdlg, Dbtables, Dsintf, Provider, SMintf

Package

Units

VCLDBX30.DPL

Dblookup, Report

DSS30.DPL

Mxarrays, Mxbutton, Mxcommon, Mxconsts, Mxdb, Mxdcube, Mxdssqry, Mxgraph, Mxgrid, Mxpivsrc, Mxqedcom, Mxqparse, Mxqryedt, Mxstore, Mxtables, Mxqvb

INET30.DPL

Cgiapp, Copyprsr, Httpapp, Isapiapp, Masks, Scktcomp, Syncobjs, Webconst

INETDB30.DPL

Dbweb

QRPT30.DPL

Qr2const, Qrabout, Qralias, Qrctrls, Qrdatasu, Qrexpbld, Qrextra, Qrprev, Qrprgres, Qrprntr, Qrqred32, Quickrpt

TEE30.DPL

Arrowcha, Bubblech, Chart, Ganttch, Series, Teeconst, TeeFunci, TeEngine, Teeprocs, Teeshape

TEEDB30.DPL

Dbchart, Qrtee

IBEVNT30.DPL

Ibctrls, Ibevnts, Ibproc32, Ibreg

Entwurfszeit-Packages

Entwurfszeit-Packages werden zur Installation von Komponenten in der Komponentenpalette der IDE und zur Bereitstellung spezieller Eigenschaftseditoren für benutzerdefinierte Komponenten verwendet.

Delphi wird mit den folgenden Entwurfszeit-Packages ausgeliefert, die in der IDE vorinstalliert sind.

Package

Registerkarten Komponentenpalette

DCLSTD30.DPL

Standard, Zusätzlich, System, Win32, Dialoge

DCLTEE30.DPL

Zusätzlich (Komponente TChart)

DCLDB30.DPL

Datenzugriff, Datensteuerung

DCL31W30.DPL

Win 3.1

DCLNET30.DPL

Internet

DCLISP30.DPL

Internet

DCLSMP30.DPL

Beispiele

DCLOCX30.DPL

ActiveX

DCLQRT30.DPL

QReport

DCLDSS30.DPL

Entscheidungswürfel

IBEVNT30.DPL

Beispiele (Komponente IBEvent-Alerter)

Diese Entwurfszeit-Packages rufen Laufzeit-Packages auf, die sie in den requires-Klauseln referenzieren. STDLIB, das die meisten Standardkomponenten in der Komponentenpalette bereitstellt, referenziert beispielsweise VCL30.

Benutzerdefinierte Packages

Außer den vorinstallierten Packages kann man auch eigene Komponenten-Packages oder Komponenten-Packages von Fremdherstellern in der IDE installieren. Das Entwurfszeit-Package DCLUSR30 dient als Standardcontainer für neue Komponenten.

Das Entwickeln neuer Packages wird nachfolgend beschrieben.

Einsatzgebiete von Laufzeit-Packages





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-02-22 22:16:25 von textarchiv.alojado.de