Table Of ContentWolf-Gert Matthaus
Grundkurs
Programmleren mit Delphi
Aus dem Bereich IT erfolgreich lernen
Grundkurs Software-Entwicklung Prozessmodellierung mit ARIS ®
mit C++ von Heinrich Seidl meier
von Dietrich May Objektorientierte
Grundkurs Datenbankentwurf Programmierung in JAVA
von Helmut jarosch von Otto Rauh
Web-Programmierung Anwendungsorlentierte
von Oral Avcl, Ralph Trittmann und Werner Mellis Wirtschaftslnformatlk
OhneCzuC++ von Paul Alpar, Heinz Lothar Grob, Peter
von Peter P. Bothner und Michael Kahler Weimann und Robert Winter
Grundkurs JAVA Rechnerarchitektur
von Dietmar Abts von Paul Herrmann
Aufbaukurs Wirtschaftsinformatik Grundkurs Relationale Datenbanken
von Dietmar Abts und Wilhelm Mulder von Rene Steiner
Kompaktkurs Mlkrocontroller Grundkurs UNIX/Linux
von Silvia Limbach von Wilhelm Schaffrath
Von Pascal zu Assembler Grundkurs MySQl und PHP
von Peter Kammerer von Martin Pollakowski
Das PC Wissen fur IT-Berufe: Pascal
Hardware, Betriebssysteme, Netzwerktechnik von Doug Cooper und Michael Clancy
von Rainer Egewardt Aufbaukurs JAVA
Datenbank-Engineering von Dietmar Abts
von Alfred Moos Grundkurs Informatik
Grundkurs Verteilte Systeme von Hartmut Ernst
von Gunther Bengel Kostentrigerrechnung mit SAP R/3®
Online-Publishing fur Studenten und von Franz Klenger und Ellen Falk-Kalms
Wissenschaftier Netze - Protokolle - Spezlflkatlonen
von Michael BeiBwenger von Alfred Olbrich
SQl mit Oracle Grundlegende Algorithmen
von Wolf-Michael Kahler von Volker Heun
Module, Klassen, Vertrige Softwaretechnlk mit Ada 95
von Karlheinz Hug von Manfred Nagl
Grundkurs Betriebswirtschaftslehre Visual Basic fur technische
von Notger Carl, Rudolf Fiedler, William j6rasz Anwendungen
und Manfred Kiesel von jurgen Radel
Relatlonales und objektrelationales SQl Controlling mit SAP R/3®
von Wolf-Michael Kahler von Gunther Friedl, Christian Hilz
lern-und Arbeitsbuch SAP R/3® und Burkhard Pedell
von Andre Maassen und Markus Schoenen Grundkurs
Kostenstellenrechnung mit SAP R/3® Geschiftsprozess - Management
von Franz Klenger und Ellen Falk-Kalms von Andreas Gadatsch
Grundkurs Algorithmen und Grundkurs IT-Controlling
Datenstrukturen In JAVA von Andreas Gadatsch und Elmar Mayer
von Andreas Solymosi und Ulrich Grude Grundkurs Programmleren mit Delphi
Grundkurs Wirtschaftsinformatik von Wolf-Gert Matthaus
von Dietmar Abts und Wilhelm Mulder
www.vieweg-it.de
Wolf-Gert Matthaus
Grundkurs
Programmieren
mit Delphi
Systematisch programmieren
mit Delphi-
Inklusive Pascal-Programmierung
und OOP
aI
vleweg
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet uber <http://dnb.ddb.de> abrufbar.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk
berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne
von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von
jedermann benutzt werden durfen.
Hochste inhaltliche und technische Qualitat unserer Produkte ist unser l ie!. Bei der Produktion und
Auslieferung unserer Bucher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und
chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus
organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe
freisetzen.
1. Auflage Marz 2004
Aile Rechte vorbehalten
© Friedr. Vieweg & Sohn Verlag /GWV Fachverlage GmbH, Wiesbaden 2004
Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media.
www.vieweg.de
Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. lede
Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist
ohne lustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere
fUr Vervielfiiltigungen, Obersetzungen, Mikroverfilmungen und die Ein
speicherung und Verarbeitung in elektronischen Systemen.
Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de
Gedruckt auf saurefreiem und chlorfrei gebleichtem Papier.
ISBN 978-3-528-05863-0 ISBN 978-3-322-93962-3 (eBook)
DOI 10.1007/978-3-322-93962-3
Vorwort
"Die Delphi-Evolution fur die .NET-Revolution". Unter diesem Slogan vertreibt
Borland seit Beginn dieses Jahres sein neuestes Produkt, Delphi 8. Mit .NET
mochte Microsoft die Vision verwirklichen, eine Plattform zu schaffen, die Infor
mationen, Menschen, Systeme und Gerate miteinander verbindet.
Delphi 8 bringt die beliebten Delphi VCL-Steuerelemente auf die .NET-Plattform.
Damit kann jeder Anwender samtliche Vorteile von Delphi und von .NET kom
biniert einsetzen und schlieBlich modeme und hochleistungfahige Anwendungen
herstellen.
Dieses Buch wendet sich an Beginner. Vorausgesetzt wird nichts.
Vermittelt wird der leichte, fast spielerische Einstieg in die Welt der Delphi-Pro
grammierung, der mit der Herstellung von attraktiven Benutzeroberflachen be
ginnt und schrittweise zu immer reizvolleren Anwendungen fuhrt.
Immer wieder und immer aufs Neue werden ausfuhrlich die Hintergriinde erlau
tert, die fur das Verstandnis der Ablaufe im Computer notwendig sind.
Mehr als 270 Abbildungen illustrieren das Vorgehen, so dass jeder Schritt beim
Nachvollziehen auf dem eigenen Computer genauestens iiberpriift werden kann.
Obgleich das Buch fur die neueste Delphi-Version geschrieben wurde, so hat
doch kein Lemender irgendwelche Nachteile, der mit alteren Delphi-Versionen
arbeiten will. Wo es notwendig ist, wird auf die Unterschiede im Umgang mit
alteren Delphi-Versionen und Delphi 8 hingewiesen.
Dank sage ich zuerst und vor allem den Teilnehrnem meiner Lehrveranstaltun
gen. Die Ergebnisse bei der Urnsetzung der vorgelegten Methodik haben zum
Gelingen des jetzigen Lehrbuches erheblich beigetragen.
Meine liebe Frau opferte viele Stunden, urn Korrektur zu lesen.
Danken werde ich auch allen Leserinnen und Lesem, die mich auf meiner Ho
mepage www.w-g-m.debesuchenundmirihreMeinung.so oder so, kundtun.
Uenglingen, im Januar 2004 Wolf-Gert Matthaus
V
Inhaltsverzeichnis
1
Benutzeroberfliichen ....................................................................... 1
1.1 Startbilder ................................................................................................. 1
1.1.1 Delphi 8 ................................................................................................. 1
1.1.2 Delphi 7 und altere Versionen ............................................................. 3
1.2 Formular ................................................................................................... 4
1.2.1 Einstellung der Start-Eigenschaften ...................................................... 4
1.2.2 Test des Formulars ................................................................................ 7
1.2.3 Speicherung .......................................................................................... 9
1.3 Steuerelemente fur das Formular .......................................................... 10
1.3.1 Auswahl mit Delphi 8 ......................................................................... 10
1.3.2 Auswahl mit alteren Delphi-Versionen .............................................. 11
1.3.3 Wichtige Kategorien bzw. Registerblatter .......................................... 11
1.4 Basiselemente ......................................................................................... 12
1.4.1 Von Button bis Scrollbar .................................................................... 12
1.4.2 Name, Beschriftung, Inhalt ................................................................. 13
1.4.3 Voreinstellungen ................................................................................. 14
2
Objekt, Ereignis, Ereignisprozedur .............................................. 17
2.1 Der Objektbegriff ................................................................................... 17
2.1.1 Datenobjekte ....................................................................................... 17
2.1.2 Visuelle Objekte .................................................................................. 19
VII
Inhaltsverzeichnis
2.1.3 Ereignisbehandlung ............................................................................ 21
2.2 Einfache Ereignisprozeduren zum Standard-Ereignis ........................... 22
2.2.1 Button .................................................................................................. 23
2.2.2 Textfenster ........................................................................................... 25
2.2.3 Checkbox ............................................................................................ 26
2.2.4 Scrollbar. .............................................................................................. 26
2.2.5 Radiobutton ......................................................................................... 26
2.2.6 Label .................................................................................................... 27
2.2.7 Formular .............................................................................................. 27
2.3 Einfache Ereignisprozeduren zu Nicht-Standard-Ereignissen .............. 28
2.3.1 Reaktionen auf Mausbewegungen ..................................................... 28
2.3.2 Reaktionen auf Tastendruck ............................................................... 31
2.3.3 Fokus-Ereignisse ................................................................................. 32
3
Weitere Steuerelemente ................................................................. 37
3.1 Steuerelement Liste (ListBox) ................................................................ 38
3.2 Steuerelement Combobox ..................................................................... 40
3.3 Steuerelement Radiogruppe (RadioGroup) .......................................... 42
3.4 Steuerelement Menu (MainMenu) ......................................................... 45
4
Ereignisprozeduren: Verwendung von properties ..................... 49
4.1 Einfache Mitteilungen ............................................................................ 49
4.2 Passiver Zugriff auf Datenkerne ............................................................ 49
4.2.1 Eigener Datenkern .............................................................................. 50
4.2.2 Datenkerne fremder Objekte ............................................................. 53
4.3 Aktiver Zugriff auf Datenkerne ............................................................. 56
4.3.1 Eigener Datenkern .............................................................................. 56
VIII
Inbaltsverzeicbnis
4.3.2 Datenkerne fremder Objekte ............................................................. 57
4.4 Aktiver und passiver Zugriff auf Datenkerne ....................................... 63
4.5 Aktivierung und Deaktivierung von Steuerelementen ......................... 66
4.5.1 property Enabled ................................................................................ 67
4.5.2 Aktivierung des Steuerelements ......................................................... 67
4.5.3 Inaktive Menu-Eintrage ....................................................................... 68
4.6 Verstecken von Steuerelementen .......................................................... 69
4.6.1 property Vis i b1 e ................................................................................ 69
4.6.2 Steuerelement sichtbar machen ......................................................... 69
4.7 Namensbeschaffung fUr passende property ......................................... 70
4.7.1 property-Namen im Objektinspektor finden ..................................... 71
4.7.2 Eigenschaft fehlt im Objektinspektor ................................................. 72
4.7.3 Information durch die Punktliste ....................................................... 74
4.7.4 Information uber die Art der Zuweisung .......................................... 74
4.7.5 Start-Markierung in Listen setzen ....................................................... 75
4.7.6 Passiver und aktiver Zugriff auf Zeilen in einer Listbox ................... 76
4.7.7 Vereinfachungen durch verkurzte property Items [ ... ]. ................. 80
5
Einfache Tests und Alternativen ................................................... 83
5.1 Einfacher Test ......................................................................................... 84
5.1.1 Bedingtes Aktivieren/Deaktivieren von Buttons ............................... 84
5.1.2 Einklick oder Ausklick? ...................................................................... 88
5.1.3 Links-Rechts-Steuerung ....................................................................... 90
5.1.4 Tasten wegfangen ............................................................................... 91
5.2 Alternative .............................................................................................. 94
5.2.1 Ein Nachttischlampen-Schalter ........................................................... 94
5.2.2 Zu- und Abschalten von Buttons ....................................................... 96
IX
Inbaltsverzeicbnis
Timer und Timer-Ereignisse .......................................................... 99
6.1 Timer: Begriff und Bedeutung .............................................................. 99
6.1.1 Bisherige M6glichkeiten und Grenzen .............................................. 99
6.1.2 Timer .................................................................................................. 101
6.2 Einrichtung und Starteinstellung .......................................................... 102
6.2.1 Platzieren des Timer-Symbols ........................................................... 102
6.2.2 Einfache Ereignisprozeduren ............................................................ 104
6.3 Arbeit mit Timern .................................................................................. 106
6.3.1 Start und Selbst-Stopp ........................................................................ 106
6.3.2 Stopp und Weitermachen .................................................................. 108
6.3.3 Blinkende Schrift... ............................................................................. 109
6.4 Permanente Prufung im Hintergrund ................................................... 111
6.5 Rot-Gelb-Grun: Die Ampel an der Kreuzung ...................................... 113
6.5.1 Ganze Zahlen in wiederholter Folge ................................................ 113
6.5.2 Die Verkehrsampel ............................................................................ 114
6. 6 Der Vierzylinder-Motor ......................................................................... 118
6. 7 Stadte-Raten ........................................................................................... 120
6. 8 Ein einfacher Bildschirmschoner. ......................................................... 123
Ganze Zahlen ................................................................................ 127
7.1 Die Funktionen IntToStr und StrTolnt ............................................. 128
7.1.1 Ganzzahlige Werte ausgeben ............................................................ 128
7.1.2 Ganzzahlige Werte erfassen .............................................................. 129
7.1.3 Anwendungen .................................................................................... 133
7.2 Speicherplatze fUr ganze Zahlen .......................................................... 137
7.2.1 Motivation .......................................................................................... 137
X
Inhaltsverzeichnis
7.2.2 Verwendung eines Speicherplatzes .................................................. 138
7.3 Vereinbarungen von ganzzahligen SpeicherpHitzen ........................... 141
7.3.1 Bit und Byte ....................................................................................... 141
7.3.2 Integer-Datentypen .......................................................................... 142
7.4 Anwendungen von ganzzahligen SpeicherpHitzen ............................. 143
7.4.1 Grundsatze, Namensgebung ............................................................. 143
7.4.2 Erhohung der Dbersichtlichkeit ........................................................ 143
7.4.3 Ganze Zufallszahlen, Slot-Maschine ................................................. 145
7.4.4 Slot-Maschine mit Bildern .................................................................. 148
7.4.5 Teilbarkeit .......................................................................................... 151
8
Zahlschleifen ................................................................................ 155
8.1 Abzahlen in Listen ................................................................................. 155
8.2 Minimax-Aufgaben ................................................................................ 160
8.2.1 GroBten und kleinsten Wert bestimmen .......................................... 160
8.2.2 Position des groBten und kleinsten Wertes bestimmen .................. 162
8.3 Summen uber Listen ............................................................................. 163
9
Nichtnumerische Speicherpmtze ................................................ 165
9.1 Speicherplatze fur Wahrheitswerte (Typ Boolean) ............................. 165
9.1.1 Suchen und Finden in Listen ............................................................. 165
9.1.2 Verhalten einer Schaltung ................................................................. 167
9.2 Speicherplatze fur einzelne Zeichen (Typ Char) ................................. l72
9.3 Speicherplatze fur Zeichenfolgen (Typ Stri ng) ................................. 176
XI