Überblick zu Windows

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Windows-Anwendungen entwickeln - Index

Die Windows-Plattform bietet verschiedene Möglichkeiten zur Erstellung von Anwendungen. Am häufigsten werden die folgenden Arten von Windows-Anwendungen verwendet:

  • GUI-Anwendungen
  • Konsolenanwendungen
  • Service-Anwendungen
  • Packages und DLLs

GUI-Anwendungen

Eine Anwendung mit grafischer Benutzeroberfläche (GUI = Graphical User Interface) ist für die Verwendung grafisch orientierter Komponenten ausgelegt. Hierzu gehören Fenster, Menüs, Dialogfelder und andere Elemente, die die Bedienung der Anwendung vereinfachen. Wenn Sie eine GUI-Anwendung compilieren, wird aus den Quelldateien eine ausführbare Datei mit Startup-Code erzeugt. Die ausführbare Datei stellt normalerweise die grundlegende Funktionalität eines Programms bereit. Einfache Programme bestehen häufig nur aus einer ausführbaren Datei. Sie können die Anwendung jedoch erweitern, indem Sie von der ausführbaren Datei aus DLLs, Packages und andere Hilfsdateien aufrufen.

Die IDE von RAD Studio unterstützt zwei Oberflächenmodelle für Anwendungen:

  • SDI (Single Document Interface)
  • MDI (Multiple Document Interface)

SDI (Single Document Interface)

Eine SDI-Anwendung besteht normalerweise aus einer einzigen Dokumentansicht. Siehe SDI-Anwendungen.

MDI (Multiple Document Interface)

In einer MDI-Anwendung können mehrere Dokument- oder untergeordnete Fenster innerhalb eines einzigen übergeordneten Fensters geöffnet werden. Diesen Ansatz findet man häufig in Anwendungen wie Tabellenkalkulationen oder Textverarbeitungen. Siehe MDI-Anwendungen.

MDI-Anwendungen müssen sorgfältig geplant werden. Ihr Entwurf kann komplizierter sein als der von SDI-Anwendungen. MDI-Anwendungen zeigen innerhalb des Client-Fensters untergeordnete Fenster an; das Hauptformular enthält untergeordnete Formulare. Über die Eigenschaft FormStyle des Vcl.Forms.TForm-Objekts legen Sie beispielsweise fest, ob ein Formular ein untergeordnetes Formular (fsMDIChild) oder ein Hauptformular (fsMDIForm) ist. Sie sollten eine Basisklasse für Ihre untergeordneten Formulare definieren und jedes untergeordnete Formular von dieser Klasse ableiten, um zu vermeiden, dass Sie die Eigenschaften des untergeordneten Formulars erneut setzen müssen. MDI-Anwendungen enthalten oft ein Hauptmenü mit Befehlen wie Überlappend oder Untereinander, um mehrere Fenster auf verschiedene Weise anzuzeigen. Wenn ein untergeordnetes Fenster minimiert ist, wird dessen Symbol im übergeordneten MDI-Formular platziert.

Konsolenanwendungen

Konsolenanwendungen sind 32-Bit-Programme, die in einem Konsolenfenster ohne grafische Oberfläche ausgeführt werden. Diese Anwendungen benötigen in der Regel wenig Benutzereingaben und verfügen über einen begrenzten Funktionsumfang. Alle Anwendungen, deren Code {$APPTYPE CONSOLE} enthält, öffnen ein eigenes Konsolenfenster.

Service-Anwendungen

Service-Anwendungen nehmen Anforderungen von Client-Anwendungen entgegen, verarbeiten sie und geben Informationen an die Client-Anwendungen zurück. Normalerweise werden sie im Hintergrund ausgeführt, ohne dass der Benutzer viele Eingaben vornehmen muss. Beispiele für Service-Anwendungen sind Web-, FTP- oder E-Mail-Server.

Packages und DLLs erstellen

DLLs (Dynamic Link Libraries) sind Module mit compiliertem Code, die in Kombination mit einer ausführbaren Datei eingesetzt werden, um einer Anwendung zusätzliche Funktionalität zu verleihen.

Packages sind spezielle DLLs, die von Delphi-Anwendungen, der IDE oder beiden verwendet werden. Es gibt zwei Arten von Packages. Laufzeit-Packages stellen einem Programm während dessen Ausführung Funktionalität zur Verfügung. Entwurfszeit-Packages erweitern die Funktionalität der IDE.

Für die meisten Anwendungen bieten Packages eine höhere Flexibilität und sind einfacher zu erstellen als DLLs. Es gibt jedoch einige Situationen, in denen DLLs besser geeignet sind als Packages:

  • Ihr Code-Modul wird von Nicht-Delphi-Anwendungen aufgerufen.
  • Sie erweitern die Funktionalität eines Webservers.
  • Sie erzeugen ein Code-Modul, das von anderen Entwicklern verwendet wird.
  • Ihr Projekt ist ein OLE-Container.

Es ist nicht möglich, Delphi-Laufzeittypinformationen (RTTI) zwischen DLLs oder von einer DLL zu einer ausführbaren Datei zu übergeben. Wenn Sie ein Objekt zwischen DLLs oder von einer DLL zu einer ausführbaren Datei übergeben, ist es nicht möglich, die Operatoren is und as mit dem übergebenen Objekt zu verwenden. Der Grund dafür ist, dass die Operatoren is und as RTTI vergleichen müssen. Verwenden Sie Packages statt DLLs, wenn Sie Objekte von einer Bibliothek übergeben müssen, da Packages RTTI gemeinsam nutzen können. Ebenso sollten Sie in Web-Services Packages anstelle von DLLs verwenden, da diese auf Delphi-RTTI zurückgreifen.

Siehe auch