Buch Object Pascal mit Delphi

Object Pascal mit Delphi

Eine Einführung in die objektorientierte Windows-Programmierung

Springer-Verlag Berlin/Heidelberg
ISBN: 3540603409
1997. XIII, 762 S.
3-540-60340-9
EUR 49,95

Dieses Buch bietet eine systematische Einführung in die Programmierung mit der objektorientierten Programmiersprache Object Pascal sowie eine Darstellung der zugrundeliegenden Entwicklungsumgebung Delphi von Borland. Dabei wird neben Delphi 1.0 auch die neue Version 2.0 berücksichtigt. Alle Sprachkonzepte von der klassischen strukturierten bis zur objektorientierten, visuellen Programmierung einschließlich exception handling werden umfassend und präzise behandelt und an Beispielen illustriert. Object Pascal umfaßt praktisch alle Sprachelemente von C++ und ist einfacher als Visual C++.

Rückentext  Vorwort Inhaltsverzeichnis  Lösungen

Rezension im Zentralblatt für Mathematik (Fachinformationszentrum Karlsruhe FIZ)

Rückentext

Object Pascal mit Delphi

  • behandelt sowohl die 16-bit-Version 1 als auch die 32-bit-Version 2 von Delphi, der Software-Entwicklungsumgebung von Borland.
  • ist eine umfassende Darstellung von Object Pascal, der objektorientierten Programmiersprache von Delphi. Dabei stehen
  • Zusammenhänge und Sprachkonzepte im Vordergrund vor Detailinformationen, die man auch in der Online-Hilfe findet.
  • ist zum Selbststudium und als Lehrbuch zur Einführung in die Programmierung an Fachhochschulen und Universitäten geeignet.Es setzt keine Vorkenntnisse voraus und enthält zahlreiche Übungsaufgaben und Lösungen.
  • verbindet die Darstellung der Ablaufstrukturen mit einer Einführung in die Programmierlogik und die Programmverifikation.
  • enthält eine ausführliche, praxisorientierte Darstellung der Konzepte und Sprachelemente der objektorientierten Programmierung. In
  • einem kleinen praxisnahen Projekt wird gezeigt, wie man diese für die Entwicklung eines Windows-Programms einsetzen kann.
  • ist eines der ersten Lehrbücher überhaupt, das eine systematische Einführung in die Programmierung nahtlos mit einer Einführung
  • in die objektorientierte Programmierung und in die Windows-Programmierung verbindet.
  • enthält zahlreiche vergleichende Hinweise für C/C++-Programmierer

Richard Kaiser war über 10 Jahre freiberuflicher Dozent und Software-Entwickler für verschiedene Firmen. Seit einigen Jahren ist er Professor für Technische Informatik an der Berufsakademie Lörrach, wo er vor allem Vorlesungen über Programmiersprachen (Object Pascal, C und C++), Software-Engineering, Mathematik und Grafische Datenverarbeitung hält.

Vorwort

Dieses Buch verbindet eine umfassende Darstellung von Object Pascal mit einer systematischen Einführung in die Programmierung. Dabei werden alle Sprachkonzepte von der strukturierten bis zur objektorientierten Programmierung behandelt und an Beispielen illustriert.

Delphi ist eine Plattform, die sich sehr gut für eine Einführung in die Programmierung eignet. Da Object Pascal sowohl alle herkömmlichen als auch die modernen, objektorientierten Sprachelemente enthält, können alle damit verbundenen Konzepte in  einer einheitlichen Umgebung gelehrt und geübt werden. Und ganz nebenbei entstehen dabei auch noch optisch ansprechende Windows-Programme.

Das Buch richtet sich aber nicht nur an diejenigen, die objektorientiertes Programmieren lernen wollen, sondern genauso an Praktiker, die eine umfassende Darstellung von Object Pascal suchen.

Die ersten beiden Kapitel geben einen Überblick über die Entwicklungsumgebung und die visuelle Programmierung mit Delphi. Hier wird gezeigt, wie man schon mit geringen Vorkenntnissen einfache Windows-Programme erstellen kann.

In den Kapiteln 3 bis 5 werden die Sprachelemente der strukturierten Programmierung dargestellt. Mit den Ablaufstrukturen werden die Grundbegriffe der Programmierlogik und Programmverifikation behandelt. Dieser Teil entspricht damit einer klassischen Einführung in die Programmierung, wobei allerdings von Anfang an Windows-Programme entwickelt werden.

Kapitel 6 ist eine Einführung in die objektorientierte Programmierung. Nach der Vorstellung des Klassenkonzepts von Object Pascal geht es vor allem um die systematische Konstruktion von Basisklassen. Solche Basisklassen können als Bausteine für wiederverwendbare und erweiterbare Algorithmen verwendet werden. Als Beispiele werden unter anderem Basisklassen für einige gängige Sortierverfahren, die Klassenbibliothek von Delphi, tiefer gehende Klassenkonzepte und ihre Verbindung zu Windows sowie Sprachelemente für die visuelle Programmierung vorgestellt.

Im Rahmen eines kleinen Projekts wird in Kapitel 7 ein praxisnahes Windows-Programm entwickelt. Auch hier spielen Basisklassen eine zentrale Rolle: Sie stellen das grundlegende Verhalten von Formularen dar.

In Kapitel 8 werden vor allem anhand von Beispielen einige Themen behandelt, die nicht mehr im engeren Sinne zur Sprache Object Pascal gehören. Die zugehörigen Funktionen sind für viele Anwendungen nützlich und machen Delphi zu einem außerordentlich vielseitigen Entwicklungssystem, das viel mehr ist als nur ein Compiler für Object Pascal. Die dazu von Delphi zur Verfügung gestellten Klassen sind außerdem ein gutes Beispiel für die Architektur einer Klassenbibliothek.

Zahlreiche Übungsaufgaben geben dem Leser die Möglichkeit, die Inhalte praktisch anzuwenden und so zu vertiefen. Da man Programmieren nur lernt, indem man es tut, möchte ich ausdrücklich dazu ermuntern, zumindest einen Teil der Aufgaben zu lösen und sich dann selbst neue Aufgaben zu stellen. Der Schwierigkeitsgrad der Aufgaben reicht von einfachen Wiederholungen des Textes bis zu kleinen Programmieraufgaben, die ein gewisses Maß an selbständiger Arbeit erfordern. Die Lösungen der allermeisten Aufgaben findet man im letzten Kapitel.

Inhalt

   1 Die Entwicklungsumgebung 1

1.1 Visuelle Programmierung: Ein erstes kleines Programm 2
1.2 Erste Schritte in Object Pascal 6
1.3 Projekte, Projektdateien und Projektoptionen 10
1.4 Die Online-Hilfe 12
1.5 Der Quelltexteditor 14
1.6 Das lokale Menü 17
1.7 Die Symbolleiste 18
1.8 Weitere Optionen der Menüleiste 18

   2 Die Komponentenpalette 21

2.1 Die Delphi-Hilfe zu den Komponenten 21
2.2 Namen 25
2.3 Labels und Datentypen 28
2.4 Methoden und Ereignisse am Beispiel der Komponente Edit 33
2.5 Memos, ListBoxen, ComboBoxen und TStrings 37
2.6 Buttons und Ereignisse 40
2.7 CheckBoxen, RadioButtons und einfache If-Abfragen 44
2.8 Die Container GroupBox, Panel und RadioGroup 46
2.9 ScrollBar 49
2.10 Hauptmenüs und Popup-Menüs 51
2.11 Die Komponenten der Seite Dialoge 54
2.12 Der Aufruf von eigenen Formularen und modale Fenster 57
2.13 Einige weitere Komponenten 60
2.14 Einige Komponenten der Seite System 65
2.15 Vordefinierte DialogBoxen 68
2.16 Formularschablonen 70

   3 Variablen und vordefinierte Datentypen 71

3.1 Programme, Units und Syntaxdiagramme 71
3.2 Variablen 79
3.3 Ganzzahldatentypen 83
3.4 Der integrierte Debugger 96
3.5 Gleitkommadatentypen 103
3.6 Der Datentyp Char und der ASCII- und ANSI-Zeichensatz 118
3.7 Der Datentyp String 122
3.8 Aufzählungstypen 135
3.9 Boolesche Datentypen 138
3.10 Unterbereichstypen 143
3.11 Die Systematik der einfachen Datentypen 145
3.12 Mengen 147
3.13 Der Konstantenvereinbarungsteil 153
3.14 Initialisierte Variablen 155
3.15 Der Typvereinbarungsteil 157
3.16 Gleichheit und Kompatibilität von Datentypen 158
3.17 Arrays 161
3.18 Ein wenig Graphik: TCanvas und TImage 174
3.19 Pointer und dynamische Variablen 178
3.20 Kommentare 185
3.21 Compilerbefehle und bedingte Kompilation 189

   4 Anweisungen 193

4.1 Wertzuweisungen und Ausdrücke 194
4.2 Ein wenig Programmierlogik: Symbolische Ausführung 203
4.3 Die Verbundanweisung 211
4.4 Bedingte Anweisungen 212
4.4.1 Die if-Anweisung 212
4.4.2 Die case-Anweisung 224
4.4.3 Ein wenig Programmierlogik für bedingte Anweisungen 226
4.5 Wiederholungsanweisungen 233
4.5.1 Die repeat-Anweisung 234
4.5.2 Die while-Anweisung 234
4.5.3 Die for-Anweisung 236
4.5.4 Endlosschleifen, Abbruchbedingungen und Windows 241
4.5.5 Ein wenig Programmierlogik für Schleifen 244
4.6 Die Prozeduranweisung 250
4.7 Die goto-Anweisung, Break und Continue 252
4.8 Exception-Anweisungen 257
4.8.1 Strukturierte Ausnahmebehandlung 258
4.8.2 Die try-except-Anweisung 260
4.8.3 Exception-Handler und vordefinierte Exceptions 262
4.8.4 Das vordefinierte Exception-Handling von Delphi 270
4.8.5 Die Anweisung raise und selbstdefinierte Exceptions 272
4.8.6 Ressourcen-Schutzblöcke mit try-finally 275
4.9 Die Systematik der Anweisungen 279

   5 Prozeduren, Funktionen und die Blockstruktur von Pascal 281

5.1 Die Vereinbarung und der Aufruf von Prozeduren 282
5.2 Die Verwaltung von Prozeduraufrufen über den Stack 286
5.3 Blockstruktur und Lokalität 289
5.4 Speichergrenzen für lokale und globale Variablen 294
5.5 Prozeduren mit Parametern 295
5.5.1 Werteparameter 297
5.5.2 Variablenparameter 299
5.5.3 Konstantenparameter 302
5.5.4 Untypisierte Parameter 303
5.5.5 Offene Array-Parameter 304
5.5.6 Typvariante offene Array-Parameter 305
5.6 Funktionen 306
5.7 Seiteneffekte und die Reihenfolge von Auswertungen 313
5.8 Schrittweise Verfeinerung als Entwurfstechnik 316
5.9 Etwas Programmierlogik und -stil für Prozeduren und Funktionen 321
5.10 Prozedurtypen 325
5.11 Rekursion 329
5.12 Weitere Optionen für Funktionen und Prozeduren 343

   6 Objektorientierte Programmierung – 345

6.1 Records und die with-Anweisung 346
6.2 Records mit Varianten und typvariante Array-Parameter 356
6.3 Abstrakte Datentypen – Teil 1 365
6.4 Objekte und Methoden 368
6.5 Vererbung 375
6.6 Virtuelle Methoden, späte Bindung und Polymorphie 380
6.7 Klassen 390
6.8 Delphi-Komponenten als Klassen und MDI-Programme 400
6.9 Selbstdefinierte Komponenten und Methodenzeiger 405
6.10 Abstrakte Datentypen mit Klassen 410
6.11 Units 411
6.12 Zugriffsrechte auf Klassenkomponenten 419
6.13 Abstrakte Methoden, Basisklassen und Erweiterbarkeit 425
6.14 Programmbausteine und -gerüste 431
6.15 Typinformationen zur Laufzeit 439
6.16 Klassenreferenztypen und Klassenmethoden 444
6.17 Visuelle Programmierung und Properties (Eigenschaften) 449
6.17.1 Array-Properties 453
6.17.2 Indexangaben 456
6.17.3 Speicherangaben 458
6.17.4 Überschriebene Eigenschaften 459
6.18 Die Objekthierarchie von Delphi 459
6.19 Botschaften (Messages) 469
6.19.1 Die Message Queue und die Window-Prozedur 469
6.19.2 Botschaften für eine Anwendung 47 1
6.19.3 Selbstdefinierte Message-Handler für Windows-Steuerelemente 472
6.19.4 Botschaften versenden 476
6.19.5 Die Behandlung von Botschaften in der VCL 477
6.20 Die Erweiterung der Komponentenpalette 483

   7 Datenverwaltung und ein kleines Projekt 491

7.1 Projektvorbereitungen 492
7.2 Datenverwaltung mit Arrays 495
7.2.1 Vererbung von visuell erzeugten Formularen 497
7.2.2 Suchen und Sortieren 501
7.3 Dateien 503
7.3.1 Sequentielle Dateibearbeitung 506
7.3.2 I/O-Fehler und ElnOutError-Exceptions 511
7.3.3 Textdateien und Drucken 515
7.3.4 Dateibearbeitung im Direktzugriff 5 19
7.3.5 Untypisierte Dateien 522
7.3.6 File-Sharing, Zugriffsrechte und Record-Locking 523
7.3.7 Sortieren, Mischen und Gruppenverarbeitung 530
7.4 Rekursive Datenstrukturen 538
7.4.1 Verkettete Listen 540
7.4.2 Programmbausteine mit generischen Pointern 551
7.4.3 Baumstrukturen 553

   8 Verschiedenes 565

8.1 Datenbanken 566
8.1.1 TTable 566
8.1.2 Indizierte Tabellen 574
8.1.3 SQL-Abfragen 580
8.1.4 Datenbanken, Transaktionen und Cached Updates 582
8.1.5 Die BDE am Beispiel von ODBC und MS Access Datenbanken 585
8.1.6 QuickReport 589
8.2 OLE 595
8.2.1 Ein einfacher OLE-Client 595
8.2.2 Ein einfacher OLE-Server 597
8.2.3 Verknüpfen und Einbetten von OLE-Objekten 599
8.3 Dynamic Link Libraries (DLLs) 603
8.4 Windows API-Programme 609
8.5 Multitasking und Threads 611
8.5.1 Windows-API-Funktionen für Threads 612
8.5.2 Threads und die VCL 616
8.6 Meßwert-Erfassung 619

   9 Lösungen 623

9.1 Lösungen Kapitel 2 623
9.2 Lösungen Kapitel 3 635
9.3 Lösungen Kapitel 4 653
9.4 Lösungen Kapitel 5 667
9.5 Lösungen Kapitel 6 679
9.6 Lösungen Kapitel 7 713

   Literaturverzeichnis 747

   Index 749