📄 delphi02.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Mirko Pabst">
<meta name="Classification" content="Education, Bildung">
<meta name="Description" content="Grundlagen der Programmierung mit Delphi - Grundkurs Informatik am Lessing-Gymnasium Plauen">
<meta name="KeyWords" content="Delphi, Oberfl鋍he, ereignisgesteuerte Programmierung, Schrittfolge, Projektverwaltung, Unit, Informatik, Mirko, Pabst">
<meta name="GENERATOR" content="Mozilla/4.6 [de] (Win95; I) [Netscape]">
<title>2. Grundlagen der Programmierung mit Delphi</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000" background="acrop_bk.gif">
<table CELLSPACING=0 CELLPADDING=0 >
<tr>
<td VALIGN=TOP WIDTH="159"><img SRC="athena.gif" ALT="athena.gif (7242 Byte)" height=140 width=157></td>
<td>
<center><table BORDER BGCOLOR="#C0C0C0" >
<tr>
<td ALIGN=LEFT BGCOLOR="#EEEEEE"><img SRC="top.gif" height=17 width=593>
<br><b><font color="#FF0000"><font size=+2> 2. Grundlagen der Programmierung
mit Delphi</font></font></b></td>
</tr>
<tr>
<td ALIGN=CENTER VALIGN=CENTER BGCOLOR="#EEEEEE"><a href="index.htm"><img SRC="i.gif" BORDER=0 height=25 width=73></a><a href="delphi01.htm"><img SRC="l.gif" BORDER=0 height=24 width=25></a><a href="delphi03.htm"><img SRC="r.gif" BORDER=0 height=25 width=25></a></td>
</tr>
<tr>
<td BGCOLOR="#EEEEEE"> <a href="#2.1.">2.1. Die Delphi-Entwicklungsumgebung</a>
<br> <a href="#2.2.">2.2. Das Prinzip der ereignisgesteuerten Programmierung</a>
<br> <a href="#2.3.">2.3. Schrittfolge zur Programmerstellung mit
Delphi</a>
<br> <a href="#2.4.">2.4. Projektverwaltung unter Delphi</a>
<br><font size=-1> <a href="#2.4.1.">2.4.1.
Beispiel für die Dateistruktur eines Projektes</a></font>
<br><font size=-1> <a href="#2.4.2.">2.4.2.
Dateien, die in der Entwicklungsphase erzeugt werden</a></font>
<br><font size=-1> <a href="#2.4.3.">2.4.3.
Vom Compiler erzeugte Projektdateien</a></font>
<br><font size=-1> <a href="#2.4.4.">2.4.4.
Empfohlene Vorgehensweise im Unterricht - Projektsicherungsprogramm</a></font>
<br> <a href="#2.5.">2.5. Struktur einer Unit</a></td>
</tr>
</table></center>
</td>
</tr>
</table>
<h2>
<a NAME="2.1."></a><a href="#2.2."><img SRC="ru.gif" BORDER=0 height=25 width=25></a><font color="#FF0000">
2.1. Die Delphi-Entwicklungsumgebung</font></h2>
<hr WIDTH="100%">
<p>Nach dem Start von Delphi werden verschiedene Fenster geöffnet,
die für die visuelle Programmierarbeit notwendig sind. Diese Arbeitsfläche
wird als Integrierte Entwicklungsumgebung, kurz IDE (engl. Integratet Development
Enviroment) bezeichnet. Alle Fenster der IDE können frei und einzeln
auf dem Bildschirm positioniert oder geschlossen werden. Durch das Schließen
des Hauptfensters wird Delphi beendet.
<p>Die nachstehende Tabelle gibt einen einführenden Überblick
zu Erscheinungsbild und Funktion der wichtigsten Bestandteile der Delphi-Entwicklungsumgebung:
<br>
<table WIDTH="100%" BGCOLOR="#FFFFD2" >
<tr>
<td><img SRC="delph02.jpg" HSPACE=5 VSPACE=5 height=478 width=485 align=RIGHT>Das
<b><font color="#FF0000">Formular</font></b> stellt das zentrale Entwicklungsobjekt
eines Delphi-Programms dar. Auf ihm werden die gewünschten Komponenten
wie Schaltflächen, Menüs und Eingabefelder per Mausklick platziert
und größenmäßig angepasst. Das Erscheinungsbild des
Formulars entspricht dem Aussehen des Windows-Fensters, in dem das fertige
Programm später ablaufen wird.
<p>Die <b><font color="#FF0000">Komponentenpalette</font></b> ist in verschiedene
Register (Standard, Zusätzlich usw.) unterteilt, und diese erlauben
die Auswahl der benötigten Windows-Komponenten.
<p>Mit Hilfe des <b><font color="#FF0000">Objektinspektors</font></b> werden
Darstellungsweise und Verhalten der Objekte (Komponenten) in einem Formular
sowie das Aussehen des Formulars selbst festgelegt. Das Erscheinungsbild
wird über die Seite "Eigenschaften", das Verhalten beim Eintritt eines
Ereignisses über die Seite "Ereignisse" eingestellt.
<p>Der <b><font color="#FF0000">Quelltexteditor</font></b> wird zum Schreiben
des Programmcodes in der Programmiersprache Pascal genutzt. Dabei generiert
Delphi für neu in das Formular eingefügte Komponenten automatisch
den Programmcode, der dann im Editor angezeigt wird. Dem Programmierer
obliegt daher "nur noch" die Einarbeitung der Algorithmen zur Ereignisbehandlung.</td>
</tr>
</table>
<p><a href="#Anfang"><img SRC="ho.gif" BORDER=0 height=24 width=25></a>
<font size=-1><a href="#Anfang">Seitenanfang</a></font>
<h2>
<a NAME="2.2."></a><a href="#2.3."><img SRC="ru.gif" BORDER=0 height=25 width=25></a><font color="#FF0000">
2.2. Das Prinzip der ereignisgesteuerten Programmierung</font></h2>
<hr WIDTH="100%">
<p>Die Programmierung mit Delphi wird auch als ereignisgesteuerte Programmierung
bezeichnet. Ein Ereignis ist eine Aktion, die den Programmablauf beeinflusst.
<p><b><font color="#008000"><font size=+1>Was sind Ereignisse?</font></font></b>
<ul><font color="#FF0000"><b>Alle Aktionen (Tastatureingaben, Mausbewegungen)
eines Benutzers</b>,</font><font color="#000000"> wie zum Beispiel:</font></ul>
<ul>
<ul>
<li>
<font color="#000000">Einfaches oder doppeltes Klicken auf eine Befehlsschaltfläche,</font></li>
<li>
<font color="#000000">Verschieben, Öffnen oder Schließen eines
Fensters mit der Maus,</font></li>
<li>
<font color="#000000">Positionieren des Cursors in ein Eingabefeld mit
der Tabulatortaste.</font></li>
</ul>
<b><font color="#FF0000">Interne Programmabläufe,</font></b><font color="#000000">
wie zum Beispiel:</font>
<ul>
<li>
<font color="#000000">Berechnungen durchführen,</font></li>
<li>
<font color="#000000">Öffnen und Schließen eines Fensters (vom
Programm gesteuert),</font></li>
<li>
<font color="#000000">Ermitteln von aktueller Uhrzeit und Datum.</font></li>
</ul>
</ul>
<b><font color="#008000"><font size=+1>Reaktionen auf Ereignisse</font></font></b>
<ul><font color="#000000">Mit Delphi werden Programme entwickelt, die durch
die grafische Benutzeroberfläche von Windows mit Steuerelementen wie
beispielsweise Dialogfenstern, Schaltflächen und Eingabefeldern gesteuert
werden.</font>
<p><font color="#000000">Durch ein </font><b><font color="#FF0000">Ereignis</font></b><font color="#000000">
(z.B. Klicken auf eine Schaltfläche) wird eine </font><b><font color="#FF0000">Reaktion</font></b><font color="#000000">
(z.B. Öffnen eines Fensters) hervorgerufen. Diese Reaktion wird in
Form von Object-Pascal-Code in einer Prozedur erstellt, die als </font><b><font color="#FF0000">Ereignisbehandlungsroutine</font></b><font color="#000000">
bezeichnet wird.</font></ul>
<center><table BORDER BGCOLOR="#FFFFB3" >
<tr>
<td><font color="#000000">Als Ereignisbehandlungsroutinen werden diejenigen
Anweisungen bezeichnet, die ausgeführt werden, sobald ein Ereignis
eintritt.</font></td>
</tr>
</table></center>
<a href="#Anfang"><img SRC="ho.gif" BORDER=0 height=24 width=25></a> <font size=-1><a href="#Anfang">Seitenanfang</a></font>
<h2>
<a href="#2.4."><img SRC="ru.gif" BORDER=0 height=25 width=25></a><font color="#FF0000"> <a NAME="2.3."></a>2.3.
Schrittfolge zur Programmerstellung mit Delphi</font></h2>
<hr>
<p>Die nachfolgende Tabelle soll aufzeigen, wie sich der "klassische" Software-live-cycle
unter den Gegebenheiten einer visuellen Programmierumgebung erweitert bzw.
modifiziert. Dabei darf man sich den Durchlauf der einzelnen Schritte keinesfalls
als einmalige lineare Abfolge vorstellen, vielmehr entstehen durch Rücksprünge
und das mehrmalige Durchlaufen von Teilen der Schrittfolge zyklische Strukturen.
Werden z.B. bei der Resultatsprüfung unter Punkt 5) Fehler festgestellt,
muss wieder bei Punkt 2A) begonnen werden, indem man logische Fehler im
Algorithmus beseitigt.
<p>Und schließlich kann auch die gesamte Schrittfolge als zyklische
Struktur begriffen werden: kaum ist die Version 1.0 eines Programms ausgeliefert,
werden bisher unerkannte "Bugs" entdeckt und Wünsche zur Erweiterung
der Funktionalität des Programms laut - also neue Problemformulierung,
Problemanalyse, ... und schon existiert die Version 1.1 usw.
<br>
<table BORDER CELLPADDING=6 BGCOLOR="#FFFFCA" >
<tr>
<td ALIGN=CENTER COLSPAN="2" BGCOLOR="#D0FFFF"><b><i><font color="#FF0000"><font size=+1>1)
Problemformulierung</font></font></i></b></td>
</tr>
<tr>
<td COLSPAN="2">
<blockquote><b>"Es ist ein Programm zu erstellen, das folgendes leistet:
... " </b>
<br>So oder so ähnlich beginnt die Formulierung dessen, was das Programm
im ganzen realisieren soll. Man wird mehr oder weniger klare Vorstellung
zu notwendigen Eingabewerten, zum Erscheinungsbild des Programms, zur Art
der Ergebnisausgabe, zum potentiellen Nutzerprofil etc. vorfinden.
<p>Die nachfolgenden beiden Schritte verlaufen im Prinzip parallel - die
Programmierhandlung springt zwischen algorithmischer und visueller Seite
hin und her, weil der algorithmische Aufbau des Programms bestimmte Komponenten
einer Nutzeroberfläche bedingt bzw. die gewünschte Oberflächenstruktur
Einfluss auf die Modularisierung der Lösungsalgorithmen haben kann. </blockquote>
</td>
</tr>
<tr>
<td VALIGN=TOP BGCOLOR="#D0FFFF"><b><i><font color="#FF0000"><font size=+1>2A)
Algorithmischer Problemlösungsprozeß</font></font></i></b>
<br><b><i><font color="#0000FF"><font size=+1>
- Algorithmische Seite - </font></font></i></b></td>
<td VALIGN=TOP BGCOLOR="#D0FFFF"><b><i><font color="#FF0000"><font size=+1>2V)
Benutzeroberfläche erstellen und </font></font></i></b>
<br><b><i><font color="#FF0000"><font size=+1>
Eigenschaften der Objekte festlegen</font></font></i></b>
<br><b><i><font color="#0000FF"><font size=+1>
- Visuelle Seite -</font></font></i></b></td>
</tr>
<tr>
<td VALIGN=TOP><b><i><font color="#FF0000"><font size=+0>I) Problemanalyse</font></font></i></b>
<br><font size=+0>Das Gesamtproblem wird in überschaubare Teilprobleme
zerlegt - Modularisierung und Modellierung der Problemsituation.</font>
<p><b><i><font color="#FF0000"><font size=+0>II) Entwurf von Lösungsalgorithmen
für die Teilprobleme</font></font></i></b>
<br><img SRC="strukto1.gif" ALT="strukto1.gif (1910 Byte)" height=133 width=173 align=LEFT><font size=+0>Die
Lösungswege dazu werden zunächst in abstrakter Weise beschrieben.
Je nach Komplexität kann dies in verbaler Form geschehen (Eindeutigkeit!)
oder es kommen grafische Beschreibungsformen, z.B. Struktogramme oder Programmablaufpläne
zum Einsatz. </font>
<br><font size=+0>Es wird noch nicht mit konkreter Programmiersprache gearbeitet.</font>
<p><b><i><font color="#FF0000"><font size=+0>III) Synthese der Teillösungen </font></font></i></b>
<br><font size=+0>Nunmehr werden die entwickelten Teillösungen zur
Gesamtlösung verknüpft und notwendige E/A-Funktionen zwischen
den einzelnen Modulen festgelegt.</font></td>
<td VALIGN=TOP WIDTH="45%"><img SRC="step01.jpg" HSPACE=4 VSPACE=4 height=139 width=219 align=LEFT><font size=+0>Mit
zunehmenden Voranschreiten im algorithmischen Problemlösungsprozeß
wächst auch die Vorstellung über Beschaffenheit und Funktionalität
der Benutzeroberfläche. </font>
<p><font size=+0>Erstellt wird diese durch Anordnung aller notwendigen
Komponenten (Textfelder, Optionsfelder, Eingabefelder, Schalter usw.) auf
dem Formular. </font>
<p><font size=+0>Die Auswahl der Komponenten erfolgt über die Komponentenpalette.
Dabei werden mit Hilfe des Objektinspektors die Eigenschaften der Komponenten
festgelegt, z.B. Größe, Farbe, Bezeichnung der Schaltflächen,
Text- und Eingabefelder.</font>
<p><b><font size=+0>Spätestens an dieser Stelle sollte das Projekt
erstmals gespeichert werden!</font></b></td>
</tr>
<tr>
<td ALIGN=CENTER COLSPAN="2" BGCOLOR="#D0FFFF"><b><i><font color="#FF0000"><font size=+1>4)
Ereignisbehandlung codieren </font></font></i></b>
<br><b><i><font color="#0000FF"><font size=+0>
- "Hochzeit" von Algorithmus und Programmoberfläche -</font></font></i></b></td>
</tr>
<tr>
<td COLSPAN="2">
<blockquote><img SRC="step03.jpg" HSPACE=4 VSPACE=4 height=157 width=218 align=RIGHT><font size=+0>Zunächst
werden über den Objektinspektor diejenigen Ereignisse ausgewählt,
die für den späteren Programmablauf von Bedeutung sein werden
(z.B. Klicken eines Schalters).</font>
<br><font size=+0>In einer zugehörigen Ereignisbehandlungsroutine
wird dann im Quelltexteditor in der Programmiersprache Pascal beschrieben,
wie die jeweiligen Komponenten auf das betreffende Ereignis reagieren sollen.</font></blockquote>
<blockquote><font size=+0>Dabei werden also die unter 3A) gefundenen Lösungsalgorithmen
in Programmiersprache "übersetzt" und die Ergebnisausgabe wiederum
über Komponenten realisiert.</font></blockquote>
</td>
</tr>
<tr>
<td ALIGN=CENTER COLSPAN="2" BGCOLOR="#D0FFFF"><b><i><font color="#FF0000"><font size=+1>5)
Test-Korrektur-Durchläufe </font></font></i></b></td>
</tr>
<tr>
<td COLSPAN="2">
<ul>
<table CELLSPACING=0 CELLPADDING=0 >
<tr>
<td VALIGN=TOP>
<table CELLPADDING=5 >
<tr>
<td VALIGN=TOP><b>I) Syntaxprüfung:</b></td>
<td>Vorm ersten Start sollte unbedingt die syntaktische Korrektheit der
eingegebenen Pascal-Anweisungen getestet und ggf. korrigiert werden. Anschließend
wird das Projekt erneut gespeichert!</td>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -