26
Walter Doberenz, Thomas Gewinnus Borland Delphi 7 -- Grundlagen, Profiwissen, Kochbuch Das umfassende Handbuch für die Win32-Anwendungsentwicklung ISBN-10: 3-446-41216-6 ISBN-13: 978-3-446-41216-3 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41216-3 sowie im Buchhandel

Walter Doberenz, Thomas Gewinnus Borland Delphi 7

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Walter Doberenz, Thomas Gewinnus

Borland Delphi 7 --Grundlagen, Profiwissen,

KochbuchDas umfassende Handbuch für die Win32-Anwendungsentwicklung

ISBN-10: 3-446-41216-6ISBN-13: 978-3-446-41216-3

Inhaltsverzeichnis

Weitere Informationen oder Bestellungen unterhttp://www.hanser.de/978-3-446-41216-3

sowie im Buchhandel

Page 2: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

InhaltsverzeichnisHINWEIS: Die Kapitel 20 bis 30 wurden aus Platzgründen nicht im Buch abgedruckt, sind aber

in der E-Book-Fassung auf der beiliegenden CD-ROM enthalten. Die betreffendenKapitel wurden im Folgenden mit einem CD-Symbol versehen.

Vorwort .................................................................................................... 31

1 Einführung ............................................................................................... 331.1 Die Ruhe vor dem Sturm ........................................................................................... 33

1.1.1 Software ........................................................................................................ 331.1.2 Hardware ....................................................................................................... 341.1.3 Installation von Delphi 7 ............................................................................... 351.1.4 Dokumentation .............................................................................................. 35

1.2 Die Windows-Philosophie ......................................................................................... 361.2.1 Mensch-Rechner-Dialog ............................................................................... 361.2.2 Objekt- und ereignisorientierte Programmierung .......................................... 371.2.3 Windows-Programmierung mit Delphi ......................................................... 39

1.3 Erste Schritte in Delphi ............................................................................................. 401.3.1 Einführungsbeispiel für Einsteiger ................................................................ 401.3.2 Einführungsbeispiel für Umsteiger ............................................................... 431.3.3 Auf zur Object Pascal-Programmierung! ...................................................... 53

1.4 Von anderen Sprachen zu Delphi .............................................................................. 531.4.1 C/Visual C++/Java ........................................................................................ 531.4.2 Turbo Pascal .................................................................................................. 541.4.3 Turbo Pascal für Windows ............................................................................ 551.4.4 Visual Basic .................................................................................................. 55

1.5 Neuigkeiten der Version 7 ......................................................................................... 571.5.1 Änderungen der Entwicklungsumgebung ..................................................... 571.5.2 Internet-Technologie .................................................................................... 591.5.3 Datenbanken ................................................................................................. 601.5.4 Runtime Library (RTL) ................................................................................. 601.5.5 ModelMaker .................................................................................................. 611.5.6 Dokumentation .............................................................................................. 61

1.6 Lernbeispiele für Einsteiger ...................................................................................... 611.6.1 Der verrückte Button .................................................................................... 611.6.2 Nostalgische Konsolen-Anwendung ........................................................... 62

Page 3: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

6 Inhaltsverzeichnis

1.7 Praxisbeispiele für Fortgeschrittene .......................................................................... 631.7.1 Umwandeln von Dezimalkomma in Dezimalpunkt ...................................... 631.7.2 Abstellen des nervenden Pieptons ................................................................. 64

2 Grundlegende Sprachelemente ................................................................ 652.1 Der Quelltexteditor .................................................................................................... 65

2.1.1 Bedienung ..................................................................................................... 652.1.2 Schreibweise ................................................................................................. 66

2.2 Ein erster Blick auf Object Pascal ............................................................................. 672.2.1 Programm, Anweisungen und Blöcke ........................................................... 682.2.2 Bezeichner .................................................................................................... 71

2.3 Datentypen, Variablen und Konstanten ..................................................................... 742.3.1 Deklaration von Variablen ............................................................................ 742.3.2 Einfache vordefinierte Datentypen ................................................................ 752.3.3 Arithmetische Operationen ........................................................................... 812.3.4 Strings .......................................................................................................... 822.3.5 Zeigertypen ................................................................................................... 832.3.6 Variant-Datentypen ....................................................................................... 842.3.7 Typumwandlungen von Variablen ................................................................ 862.3.8 Konstanten .................................................................................................... 88

2.4 Benutzerdefinierte Datentypen .................................................................................. 892.4.1 Records ......................................................................................................... 892.4.2 Statische Arrays ............................................................................................ 912.4.3 Dynamische Arrays ....................................................................................... 952.4.4 Mengen ......................................................................................................... 99

2.5 Kontrollstrukturen ..................................................................................................... 1022.5.1 Schleifenanweisungen ................................................................................... 1022.5.2 Verzweigungen ............................................................................................. 104

2.6 Standardfunktionen und -prozeduren ........................................................................ 1062.6.1 Überblick ..................................................................................................... 1062.6.2 Arithmetische Funktionen ............................................................................. 1062.6.3 Stringfunktionen ............................................................................................ 1092.6.4 Format-Strings .............................................................................................. 1112.6.5 Datums-/Zeitroutinen .................................................................................... 1142.6.6 Sonstige Funktionen und Prozeduren ............................................................ 119

2.7 Selbst definierte Funktionen und Prozeduren ............................................................ 1212.7.1 Die Parameterliste ......................................................................................... 121

Page 4: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 7

2.7.2 Parameterübergabe als Wert oder Referenz .................................................. 1212.7.3 Standardparameter ........................................................................................ 1222.7.4 Funktion oder Prozedur? ............................................................................... 1222.7.5 Überladene Routinen ..................................................................................... 1242.7.6 Rekursionen .................................................................................................. 124

2.8 Lernbeispiele für Anfänger ....................................................................................... 1252.8.1 Übung 1 ........................................................................................................ 1262.8.2 Übung 2 ........................................................................................................ 1282.8.3 Übung 3 ........................................................................................................ 1302.8.4 Übung 4 ........................................................................................................ 1332.8.5 Übung 5 ........................................................................................................ 1372.8.6 Übung 6 ....................................................................................................... 139

2.9 Praxisbeispiele für Fortgeschrittene .......................................................................... 1432.9.1 Speichern von Records in einem statischen Array ........................................ 1432.9.2 Experimente mit der Format-Funktion .......................................................... 1462.9.3 Überladen von Funktionen ............................................................................ 147

3 Entwicklungsumgebung ........................................................................... 1493.1 Die wichtigsten Fenster im Überblick ....................................................................... 1493.2 Alle Menüfunktionen und die Symbolleiste .............................................................. 150

3.2.1 Datei-Menü ................................................................................................... 1503.2.2 Bearbeiten-Menü ........................................................................................... 1513.2.3 Suchen-Menü ................................................................................................ 1523.2.4 Ansicht-Menü ............................................................................................... 1533.2.5 Projekt-Menü ................................................................................................ 1533.2.6 Start-Menü .................................................................................................... 1543.2.7 Komponenten-Menü ..................................................................................... 1553.2.8 Datenbank-Menü ........................................................................................... 1563.2.9 Tools-Menü ................................................................................................... 1563.2.10 Fenster-Menü ................................................................................................ 1563.2.11 Hilfe-Menü .................................................................................................... 157

3.3 Das Startformular ...................................................................................................... 1573.4 Die Komponentenpalette ........................................................................................... 158

3.4.1 Standard ........................................................................................................ 1583.4.2 Zusätzlich ...................................................................................................... 1593.4.3 Win32 ........................................................................................................... 1603.4.4 System ........................................................................................................... 161

Page 5: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

8 Inhaltsverzeichnis

3.4.5 Datenzugriff .................................................................................................. 1613.4.6 Datensteuerung ............................................................................................. 1623.4.7 BDE .............................................................................................................. 1623.4.8 Rave .............................................................................................................. 1623.4.9 Dialoge .......................................................................................................... 1633.4.10 Win3.1 .......................................................................................................... 1633.4.11 Beispiele ........................................................................................................ 1643.4.12 ActiveX ......................................................................................................... 1643.4.13 Server ............................................................................................................ 165

3.5 Der Objektinspektor .................................................................................................. 1653.5.1 Eigenschaften-Seite ....................................................................................... 1653.5.2 Ereignisse-Seite ............................................................................................. 1663.5.3 Einstellungen ................................................................................................. 167

3.6 Der Quelltexteditor .................................................................................................... 1673.6.1 Intellisense .................................................................................................... 1673.6.2 Diagramm-Seite ............................................................................................ 1683.6.3 Einstellungen ................................................................................................. 169

3.7 Weitere Fenster ......................................................................................................... 1693.7.1 Projektverwaltung ......................................................................................... 1693.7.2 Objekt-Hierarchie .......................................................................................... 170

3.8 Praxisbeispiele ......................................................................................................... 1713.8.1 Festlegen der Projekteinstellungen für Formulare ......................................... 1713.8.2 Eine MDI-Applikation erstellen .................................................................... 1773.8.3 Einen Taschenrechner entwerfen .................................................................. 180

4 Formulare und Komponenten ................................................................... 1854.1 Allgemeines über Steuerelemente ............................................................................. 185

4.1.1 Standardeigenschaften ................................................................................... 1854.1.2 Standardereignisse ........................................................................................ 1884.1.3 Standardmethoden ......................................................................................... 194

4.2 Das Formular ............................................................................................................ 1954.2.1 Formulareigenschaften .................................................................................. 1954.2.2 Formularereignisse ........................................................................................ 1974.2.3 Formularmethoden ........................................................................................ 1984.2.4 MDI-Fenster .................................................................................................. 199

4.3 Die Standard-Komponenten ...................................................................................... 2024.3.1 Button ........................................................................................................... 202

Page 6: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 9

4.3.2 Label ............................................................................................................ 2024.3.3 Panel ............................................................................................................. 2044.3.4 Edit .............................................................................................................. 2044.3.5 Memo ........................................................................................................... 2054.3.6 GroupBox ..................................................................................................... 2064.3.7 CheckBox ..................................................................................................... 2074.3.8 RadioButton ................................................................................................. 2074.3.9 RadioGroup ................................................................................................... 2084.3.10 ListBox und ComboBox ............................................................................... 2094.3.11 ScrollBar ...................................................................................................... 2114.3.12 MainMenu und PopUpMenu ........................................................................ 2124.3.13 ActionList ..................................................................................................... 2134.3.14 Frames ........................................................................................................... 2144.3.15 Timer ............................................................................................................ 216

4.4 Weitere wichtige Objekte .......................................................................................... 2164.4.1 Application .................................................................................................... 2174.4.2 Clipboard ...................................................................................................... 2184.4.3 Printer ........................................................................................................... 2184.4.4 Screen ........................................................................................................... 218

4.5 Gitterkomponenten .................................................................................................... 2194.5.1 Eigenschaften ................................................................................................ 2204.5.2 Methoden ...................................................................................................... 2234.5.3 Ereignisse ...................................................................................................... 224

4.6 Lernbeispiele für Einsteiger ...................................................................................... 2254.6.1 Formulareigenschaften ändern ...................................................................... 2254.6.2 Eingabefilter für Editierfeld .......................................................................... 2274.6.3 Ein PopUp-Menü erstellen ............................................................................ 228

4.7 Praxisbeispiele für Fortgeschrittene .......................................................................... 2304.7.1 Arbeiten mit Drag & Drop ............................................................................ 2304.7.2 Einsatz der Gitterkomponente ....................................................................... 2344.7.3 Eine Aktionsliste verwenden ......................................................................... 2374.7.4 Rechtsbündigen Text für Editierfeld ............................................................. 241

5 Techniken der Softwarentwicklung .......................................................... 2435.1 Programmtest und Debugging ................................................................................... 243

5.1.1 Arbeitszyklus des Programmierers ................................................................ 2435.1.2 Vorbereitungen zum Debugging ................................................................... 244

Page 7: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

10 Inhaltsverzeichnis

5.1.3 Die verschiedenen Debug-Möglichkeiten ..................................................... 2455.1.4 Schrittweise Abarbeitung .............................................................................. 2475.1.5 Haltepunkte ................................................................................................... 2495.1.6 Auswerten von Ausdrücken .......................................................................... 2505.1.7 OutputDebugString ....................................................................................... 251

5.2 Fehlerbehandlung ...................................................................................................... 2515.2.1 Ein-/Ausgabeprüfung ausschalten ................................................................ 2525.2.2 Try-Except .................................................................................................... 2535.2.3 Try-Finally .................................................................................................... 2545.2.4 Das OnException-Ereignis ............................................................................ 2555.2.5 Erzeugen eigener Fehlerklassen .................................................................... 256

5.3 Dialogfenster ............................................................................................................. 2585.3.1 ShowMessage ............................................................................................... 2585.3.2 MessageBox .................................................................................................. 2595.3.3 MessageDlg .................................................................................................. 2635.3.4 InputBox und InputQuery ............................................................................. 264

5.4 Praxisbeispiele ......................................................................................................... 2665.4.1 Erzeugen von Meldungsfenstern ................................................................... 2665.4.2 Werteingabe mit der InputBox ...................................................................... 2685.4.3 Zahleneingaben überprüfen ........................................................................... 2715.4.4 Fehlersuche mit dem Debugger ..................................................................... 272

6 Units und Objekte .................................................................................... 2776.1 Programmieren in Units ............................................................................................ 277

6.1.1 Das Unit-Konzept ......................................................................................... 2776.1.2 Eine Unit im Detail ....................................................................................... 280

6.2 Object Pascal ............................................................................................................. 2846.2.1 OOP-spezifische Sprachelemente ................................................................. 2846.2.2 Objekte deklarieren ....................................................................................... 2856.2.3 Objekte erzeugen ........................................................................................... 286

6.3 OOP-Werkzeuge unter Delphi .................................................................................. 2906.3.1 Der visuelle Oberflächenentwurf .................................................................. 2906.3.2 Ereignisbehandlungen müssen Sie selbst programmieren! ............................ 2916.3.3 Unterstützung beim Definieren eigener Klassen ........................................... 2936.3.4 Die Form-Unit .............................................................................................. 2956.3.5 Formulare und Komponenten zur Laufzeit erzeugen .................................... 2986.3.6 VCL und Komponentenentwicklung ............................................................. 299

Page 8: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 11

6.3.7 Der Objektbrowser ........................................................................................ 3006.3.8 Die Objektablage ........................................................................................... 301

6.4 Lernbeispiele für Einsteiger ...................................................................................... 3036.4.1 Eine Unit für Hilfsfunktionen erstellen und einbinden .................................. 3036.4.2 Von der Unit zur Klasse ................................................................................ 3086.4.3 Delphi-Komponenten erst zur Laufzeit erzeugen .......................................... 314

6.5 Kleiner OOP-Crashkurs ........................................................................................... 3176.5.1 Klassen und Objekte verstehen ..................................................................... 3176.5.2 Konstruktor und Destruktor .......................................................................... 3236.5.3 Read-Only-Eigenschaften programmieren? .................................................. 3256.5.4 Eigenschaften mit Zugriffsmethoden kapseln ............................................... 3276.5.5 Vererbung ..................................................................................................... 329

7 Grafikprogrammierung ............................................................................ 3377.1 Das Canvas-Objekt ................................................................................................... 337

7.1.1 Koordinatensystem ........................................................................................ 3397.1.2 Grundlegende Zeichenfunktionen ................................................................. 3407.1.3 Farben ........................................................................................................... 3467.1.4 Linienfarbe, Muster und Pinsel ..................................................................... 3487.1.5 Linien und Stifte ............................................................................................ 3497.1.6 Textausgabe .................................................................................................. 353

7.2 Standarddialoge ......................................................................................................... 3557.2.1 Standarddialog zur Schriftauswahl ................................................................ 3557.2.2 Standarddialog zur Farbauswahl ................................................................... 357

7.3 Grafik-Komponenten ................................................................................................ 3587.3.1 Form und PaintBox ...................................................................................... 3587.3.2 Image ............................................................................................................ 3607.3.3 Bitmap ........................................................................................................... 3627.3.4 Shape-Komponenten ..................................................................................... 363

7.4 2-D-Vektorgrafik ...................................................................................................... 3647.4.1 Verschieben und Verdrehen von Symbolen .................................................. 3647.4.2 Spiegeln und Maßstabsänderung von Symbolen ........................................... 367

7.5 Lernbeispiele für Einsteiger ...................................................................................... 3687.5.1 Linien und Textausgabe testen ...................................................................... 3687.5.2 Animierten Markierungsrahmen erzeugen .................................................... 3697.5.3 Bitmaps laden ................................................................................................ 371

Page 9: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

12 Inhaltsverzeichnis

7.6 Praxisbeispiele für Fortgeschrittene ......................................................................... 3737.6.1 Farben mischen ............................................................................................. 3737.6.2 2-D-Vektorgrafik .......................................................................................... 377

8 Dateien/Streams ...................................................................................... 3818.1 Übersicht ................................................................................................................... 381

8.1.1 Dateifunktionen ............................................................................................. 3818.1.2 Dateizugriff unter Windows .......................................................................... 383

8.2 Textdateien ................................................................................................................ 3858.2.1 Aufbau .......................................................................................................... 3868.2.2 Öffnen ........................................................................................................... 3878.2.3 Lesen ............................................................................................................. 3888.2.4 Schreiben ...................................................................................................... 389

8.3 Typisierte Dateien ..................................................................................................... 3908.3.1 Öffnen ........................................................................................................... 3918.3.2 Lesen/Schreiben ............................................................................................ 3918.3.3 Probleme mit Records ................................................................................... 393

8.4 Binärdateien .............................................................................................................. 3938.5 Streams ...................................................................................................................... 394

8.5.1 Was ist ein Stream? ....................................................................................... 3958.5.2 Öffnen, Schreiben und Lesen ........................................................................ 3958.5.3 Kopieren von Streams ................................................................................... 397

8.6 Memory Mapped Files .............................................................................................. 3988.6.1 Erzeugen eines MMF .................................................................................... 3988.6.2 Datenaustausch über MMFs .......................................................................... 400

8.7 INI-Dateien ............................................................................................................... 4018.8 Die Registrierdatenbank ............................................................................................ 402

8.8.1 Registrierungseditor ...................................................................................... 4028.8.2 Grundstruktur ................................................................................................ 4038.8.3 Speichern ...................................................................................................... 4048.8.4 Die Klasse TRegistry .................................................................................... 4058.8.5 Dateiverknüpfungen erzeugen ....................................................................... 407

8.9 Dateidialoge .............................................................................................................. 4098.9.1 Eigene Dateidialoge erstellen ........................................................................ 4098.9.2 Standard-Dialogboxen .................................................................................. 411

8.10 Lernbeispiele für Einsteiger ...................................................................................... 4138.10.1 Drucken einer Textdatei ................................................................................ 413

Page 10: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 13

8.10.2 Ermitteln des freien Diskettenspeichers ........................................................ 4158.10.3 Speichern von Records in einer typisierten Datei .......................................... 416

8.11 Praxisbeispiele für Fortgeschrittene .......................................................................... 4218.11.1 Speichern von Variablenwerten in einem FileStream ................................... 4218.11.2 Arbeiten mit Memory Mapped Files ............................................................. 4248.11.3 Dateien suchen und Attribute auswerten ....................................................... 4268.11.4 Kopieren von Dateien ................................................................................... 429

9 Datenbankprogrammierung ..................................................................... 4339.1 Relationale Datenbanken ........................................................................................... 433

9.1.1 Datenbankformate ......................................................................................... 4349.1.2 Was sind relationale Datenbanken? ............................................................... 4349.1.3 Beziehungen zwischen den Tabellen ............................................................. 4359.1.4 Verknüpfen von Tabellen .............................................................................. 4369.1.5 Sekundärindex ............................................................................................... 437

9.2 Datenbankzugriff mit Bound Controls ...................................................................... 4389.2.1 Komponenten für Datenzugriff ..................................................................... 4389.2.2 Komponenten für Datensteuerung ................................................................. 4399.2.3 Rave Reports-Komponenten ......................................................................... 441

9.3 Lernbeispiele für Einsteiger ...................................................................................... 4449.3.1 Anlegen einer "Kundentabelle" ..................................................................... 4449.3.2 Definieren von Alias und Sekundärindizes ................................................... 4479.3.3 Eingabemaske mit Bound Controls ............................................................... 4499.3.4 Einfacher Bericht mit Rave Report ............................................................... 4539.3.5 Verknüpfen von Tabellen .............................................................................. 458

9.4 Praxisbeispiele für Fortgeschrittene .......................................................................... 4609.4.1 Einsparen des DBNavigators ........................................................................ 4609.4.2 Rechnungs-Eingabemaske ........................................................................... 4659.4.3 Rechnung mit Rave Reports ......................................................................... 473

10 Programmschnittstellen/Peripherie ......................................................... 48110.1 Zwischenablage ......................................................................................................... 481

10.1.1 Das Clipboard-Objekt ................................................................................... 48110.1.2 Umsetzung der Zwischenablage-Funktionen ................................................ 483

10.2 DLL-Programmierung .............................................................................................. 48410.2.1 Grundlagen .................................................................................................... 48510.2.2 Umstellung von 16 auf 32 Bit ....................................................................... 485

Page 11: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

14 Inhaltsverzeichnis

10.2.3 DLL-Programmierung mit Delphi ................................................................. 48910.2.4 DLL-Programmierung mit C ......................................................................... 49410.2.5 Einbinden in Visual Basic ............................................................................. 50010.2.6 Tipps und Tricks ........................................................................................... 502

10.3 Drucker ..................................................................................................................... 50410.3.1 Das Printer-Objekt ........................................................................................ 50510.3.2 Druckerkonfiguration .................................................................................... 50610.3.3 Drucken von Vektor- und Rastergrafiken ..................................................... 51010.3.4 Drucken in Millimetern ................................................................................. 512

10.4 Lernbeispiele für Einsteiger ...................................................................................... 51310.4.1 Arbeiten mit der Zwischenablage .................................................................. 51310.4.2 Grafiken in die Zwischenablage kopieren ..................................................... 51510.4.3 Ermitteln der installierten Drucker ................................................................ 516

10.5 Praxisbeispiele für Fortgeschrittene .......................................................................... 51810.5.1 Die Optionen des aktiven Druckers ermitteln ................................................ 51810.5.2 DLL programmieren ..................................................................................... 52010.5.3 DLL dynamisch einbinden ............................................................................ 524

11 Komponentenentwicklung ....................................................................... 52711.1 Überblick .................................................................................................................. 52711.2 Ableiten der Komponente ......................................................................................... 52811.3 Eigenschaften ............................................................................................................ 530

11.3.1 Eigenschaften von Aufzählungstypen ........................................................... 53211.3.2 Eigenschaften von Mengentypen .................................................................. 53311.3.3 Objekt-Eigenschaften .................................................................................... 53311.3.4 Komponenten-Eigenschaften ........................................................................ 535

11.4 Methoden .................................................................................................................. 53711.4.1 Allgemeines .................................................................................................. 53811.4.2 Überschreiben von Methoden ....................................................................... 54111.4.3 Methoden überladen ...................................................................................... 542

11.5 Ereignisse (Events) ................................................................................................... 54211.5.1 Standardereignisse ........................................................................................ 54311.5.2 Überschreiben der Standardereignisse ........................................................... 54411.5.3 Neue Ereignisse ............................................................................................ 544

11.6 Die wichtigsten Komponententypen ......................................................................... 54611.6.1 Datengebundene Komponenten .................................................................... 54611.6.2 Nicht sichtbare Komponenten ....................................................................... 551

Page 12: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 15

11.6.3 Grafische Komponenten ................................................................................ 55311.7 Test der Komponente ............................................................................................... 55611.8 Packages .................................................................................................................... 557

11.8.1 Grundsätzliches ............................................................................................. 55711.8.2 Eigene Packages erzeugen ............................................................................ 559

11.9 Lernbeispiele für Einsteiger ...................................................................................... 56011.9.1 Neue Komponenten ableiten ......................................................................... 560

11.10 Praxisbeispiele für Fortgeschrittene .......................................................................... 56611.10.1Komponente für Digitalanzeige .................................................................... 56611.10.2Multimedia-Timer-Komponente .................................................................. 571

12 OLE-Automation/ActiveX ......................................................................... 57712.1 Begriffe ..................................................................................................................... 57712.2 Automatisierung ........................................................................................................ 579

12.2.1 Die OLEContainer-Komponente ................................................................... 58012.2.2 Arbeiten mit Automations-Servern ............................................................... 58612.2.3 Zugriff auf Objekte im OLE-Container ......................................................... 59312.2.4 Parameter von ActiveX-Objekten ................................................................. 59312.2.5 Konvertieren von VB-Beispielen .................................................................. 595

12.3 Einige Automatisierungs-Beispiele ........................................................................... 59612.3.1 OLE-Automatisierung mit Visio .................................................................. 59612.3.2 OLE-Automatisierung mit Word .................................................................. 60112.3.3 Informationen über ActiveX-Server .............................................................. 602

12.4 ActiveX-Code-Komponenten entwickeln ................................................................. 60312.4.1 COM-Schnittstellen von Automatisierungsobjekten .................................... 60312.4.2 Praktischer Entwurf ....................................................................................... 60512.4.3 Instanz-Typen .............................................................................................. 60612.4.4 Threading-Modell ......................................................................................... 60712.4.5 Initialisieren und Entfernen von Instanzen .................................................... 60812.4.6 Interface-Definition ....................................................................................... 60912.4.7 Fehlerbehandlung .......................................................................................... 611

12.5 ActiveX-Controls ...................................................................................................... 61212.5.1 Entwurf ......................................................................................................... 61212.5.2 Eigenschaften ................................................................................................ 61412.5.3 Einbinden von PropertyPages ....................................................................... 61712.5.4 Ereignisse ...................................................................................................... 618

12.6 ActiveX-Forms ......................................................................................................... 619

Page 13: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

16 Inhaltsverzeichnis

12.7 Registrieren der ActiveX-Komponenten ................................................................... 62112.8 Zugriff auf .NET-Komponenten ............................................................................... 622

12.8.1 Was ist eine .NET-Assembly? ...................................................................... 62212.8.2 Die Rolle der Typbibliotheken in .NET ........................................................ 62312.8.3 Zugriff auf selbst entwickelte .NET-Komponenten ....................................... 624

12.9 Lernbeispiele für Einsteiger ...................................................................................... 62612.9.1 OLE-Automation mit Excel .......................................................................... 62612.9.2 Word über OLE-Automation steuern ............................................................ 631

12.10 Praxisbeispiele für Fortgeschrittene .......................................................................... 63412.10.1OLE-Server registrieren ................................................................................ 63412.10.2Programmieren einer ActiveX-DLL für Visual Basic .................................. 63512.10.3Einbinden einer .NET-Komponente .............................................................. 64612.10.4Mit C# eine .NET-Komponente für Delphi entwickeln ................................. 648

13 Wissenschaft/Technik .............................................................................. 65513.1 Sortieren .................................................................................................................... 655

13.1.1 Eine Testmenge erstellen .............................................................................. 65513.1.2 Austauschverfahren (Exchange-Sort) ............................................................ 65613.1.3 Auswahlverfahren ......................................................................................... 65713.1.4 Bubble-Sort-Verfahren .................................................................................. 65913.1.5 Shell-Sort-Verfahren ..................................................................................... 66113.1.6 Auswerten von Testergebnissen .................................................................... 66213.1.7 Testprogramm ............................................................................................... 663

13.2 Suchen ....................................................................................................................... 66513.2.1 Lineares Durchsuchen ................................................................................... 66513.2.2 Durchsuchen sortierter Datenfelder ............................................................... 665

13.3 Gauss-Algorithmus ................................................................................................... 66713.3.1 Theoretische Grundlagen .............................................................................. 66713.3.2 Ein einfaches Lösungsprogramm .................................................................. 67013.3.3 Kritik am einfachen Gauss-Algorithmus ....................................................... 674

13.4 Numerische Integration ............................................................................................. 67613.4.1 Rechteckapproximation ................................................................................. 67613.4.2 Beispiel zur Rechteckapproximation ............................................................. 67813.4.3 Weitere Integrationsverfahren ....................................................................... 68113.4.4 Automatische Schrittweitensteuerung ........................................................... 68113.4.5 Beispiel ......................................................................................................... 683

Page 14: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 17

13.5 Berechnungen mit einer Datenbank .......................................................................... 68713.5.1 Datenbank erstellen ....................................................................................... 68813.5.2 Bedienoberfläche .......................................................................................... 68913.5.3 Anbinden der datensensitiven Komponenten ............................................... 689

13.6 Lernbeispiele für Einsteiger ..................................................................................... 69713.6.1 Mit physikalischen Maßeinheiten formatieren .............................................. 69713.6.2 Zahlen konvertieren ...................................................................................... 699

13.7 Praxisbeispiele für Fortgeschrittene .......................................................................... 70113.7.1 Rechnen mit komplexen Zahlen .................................................................... 70113.7.2 Kreuzprodukt von Vektoren (OOP-Beispiel) ................................................ 705

14 Datenstrukturen ....................................................................................... 71914.1 Strings, Strings, Strings ............................................................................................. 719

14.1.1 API-Zugriff mit PChar .................................................................................. 72014.1.2 Unicode-Zeichensatz ..................................................................................... 721

14.2 Dynamische Speicherverwaltung .............................................................................. 72114.2.1 Pointer ........................................................................................................... 72214.2.2 Verkettete Listen ........................................................................................... 72714.2.3 Arbeiten mit TList-Objekten ......................................................................... 73714.2.4 Memory-Streams ........................................................................................... 74114.2.5 Dynamische Arrays ....................................................................................... 743

14.3 Lernbeispiele für Einsteiger ...................................................................................... 74514.3.1 Zerlegen von Strings ..................................................................................... 74514.3.2 Zum Unterschied zwischen PChar und String ............................................... 750

14.4 Praxisbeispiele für Fortgeschrittene .......................................................................... 75214.4.1 Zweidimensionales Array auf dem Heap (Unit-Version) ............................. 75214.4.2 Zweidimensionales Array auf dem Heap (OOP-Version) ............................ 756

15 Erweitere Grafikprogrammierung ............................................................ 76115.1 GDI-Programmierung ............................................................................................... 761

15.1.1 Arbeiten mit dem GDI .................................................................................. 76215.1.2 Koordinatensysteme und Abbildungsmodi ................................................... 76515.1.3 Zeichenwerkzeuge und Objekte .................................................................... 770

15.2 Erweiterte Bitmap-Manipulation ............................................................................... 79815.2.1 Grundlagen .................................................................................................... 79915.2.2 Spiegeln von Bitmaps ................................................................................... 80115.2.3 Farbmanipulation .......................................................................................... 803

Page 15: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

18 Inhaltsverzeichnis

15.2.4 Drehen von Bitmaps ...................................................................................... 80715.3 3-D-Vektorgrafik ...................................................................................................... 809

15.3.1 Darstellungsmöglichkeiten ............................................................................ 81215.3.2 Translation .................................................................................................... 81415.3.3 Streckung/Skalierung .................................................................................... 81515.3.4 Rotation ......................................................................................................... 815

15.4 Lernbeispiele für Einsteiger ...................................................................................... 81815.4.1 Eine umrandete Fläche mit Farbe füllen ........................................................ 81815.4.2 Drag & Drop mit Grafikobjekten .................................................................. 819

15.5 Praxisbeispiele für Fortgeschrittene .......................................................................... 82515.5.1 Programmieren einer Animation mit BitBlt .................................................. 82515.5.2 Darstellen einer 3-D-Vektorgrafik ................................................................ 829

16 Applikationen ........................................................................................... 83716.1 Einsteigerprogramm TEXTVERARBEITUNG ....................................................... 837

16.1.1 Bedienoberfläche .......................................................................................... 83716.1.2 Quelltext des MDI-Rahmenfensters .............................................................. 83916.1.3 Quelltext der MDI-Kindfenster ..................................................................... 84016.1.4 Programmtest ................................................................................................ 845

16.2 Grafikprogramm Paint .............................................................................................. 84616.2.1 Allgemeines .................................................................................................. 84616.2.2 Ein kurzer Überblick ..................................................................................... 84716.2.3 Aufbau/Programmierung ............................................................................... 851

16.3 Funktionsplotter FMASTER ..................................................................................... 86816.3.1 Allgemeines .................................................................................................. 86916.3.2 Bedienung ..................................................................................................... 86916.3.3 Aufbau/Programmierung ............................................................................... 872

16.4 Mathematikprogramm GAUSS2 ............................................................................... 87916.4.1 Bedienoberfläche Form1 ............................................................................... 87916.4.2 Quellcode der Klassen-Unit GlsMtrx .......................................................... 88016.4.3 Quelltext Unit1 .............................................................................................. 88416.4.4 Test mit Handeingabe der Koeffizienten ....................................................... 88716.4.5 Automatisches Aufstellen des Gleichungssystems ........................................ 88916.4.6 Oberfläche Form2 ......................................................................................... 88916.4.7 Quelltext Unit2 .............................................................................................. 89016.4.8 Testbeispiel Elektrotechnik ........................................................................... 892

Page 16: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 19

16.5 WINCROSS – Ihr Kreuzworträtselexperte ............................................................... 89416.5.1 Datenbankstruktur ......................................................................................... 89616.5.2 Oberfläche ..................................................................................................... 89616.5.3 Programmierung ........................................................................................... 89816.5.4 Bemerkungen ................................................................................................ 909

17 How-to: Sprache ...................................................................................... 91117.1 Das Währungsformat ändern ..................................................................................... 91117.2 Beträge formatieren und berechnen ........................................................................... 91317.3 Das Datumsformat ändern ......................................................................................... 91517.4 Das Zeitformat ändern ............................................................................................... 92017.5 Mit Datums-/Zeitfunktionen arbeiten ........................................................................ 92217.6 Auf Datum oder Zeit testen ....................................................................................... 92517.7 Datumswerte vergleichen .......................................................................................... 92817.8 Eine Konsolenanwendung einsetzen ......................................................................... 93017.9 Eine Unit erstellen und anwenden ............................................................................. 93217.10 Mit Stringlisten arbeiten ............................................................................................ 93517.11 Zeichen aus einem String entfernen .......................................................................... 93917.12 Auf Groß- oder Kleinbuchstaben testen .................................................................... 94017.13 Auf gerade oder ungerade Werte prüfen ................................................................... 94017.14 Auf Ziffern prüfen ..................................................................................................... 94117.15 Auf bestimmte Datentypen testen ............................................................................. 94117.16 Hilfsfunktionen testen ............................................................................................... 94217.17 Einen String in einzelne Wörter zerlegen .................................................................. 94417.18 Wörter aus einem String filtern ................................................................................. 94617.19 Strings auf Ähnlichkeit vergleichen .......................................................................... 94817.20 Termineingaben dekodieren ...................................................................................... 95017.21 Geldbeträge kaufmännisch runden ............................................................................ 95317.22 Einen Wert auf Bit-Ebene manipulieren .................................................................... 95417.23 Byte in KiloByte umrechnen ..................................................................................... 95817.24 Funktionstasten/Tastenkombinationen abfragen ....................................................... 959

18 How-to: Oberfläche .................................................................................. 96118.1 Ein Info-Fenster beim Start anzeigen ........................................................................ 96118.2 Ein Formular automatisch zentrieren ........................................................................ 96218.3 Ein Formular automatisch entfernen ......................................................................... 96418.4 Ein Formular ohne Titelleiste erzeugen ..................................................................... 965

Page 17: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

20 Inhaltsverzeichnis

18.5 Ein Formular an oberster Position einblenden ........................................................... 96618.6 Einen Fensterhintergrund füllen ................................................................................ 96718.7 Das Löschen des Form-Hintergrundes verhindern .................................................... 96918.8 Ein Formular in der Taskleiste anzeigen ................................................................... 96918.9 Ein Fenster zur Laufzeit erzeugen ............................................................................. 97018.10 Ein ToolWindow realisieren ..................................................................................... 97318.11 Ein Fenster auf Icon-Größe halten ............................................................................. 97518.12 Die Titelleiste ausblenden ......................................................................................... 97618.13 Ein MDI-Child simulieren ........................................................................................ 97718.14 Ein Formular skalieren .............................................................................................. 97818.15 Eine Anwendung beim Deaktivieren schließen ......................................................... 98018.16 Wichtige Standardkomponenten kennen lernen ........................................................ 98118.17 Zahleneingaben überprüfen ....................................................................................... 98418.18 Ein einzelnes Zeichen eingeben ................................................................................ 98618.19 Mit der Enter-Taste zum nächsten Feld wechseln ..................................................... 98718.20 Die Zeilenzahl eines Memofeldes bestimmen ........................................................... 98818.21 Die Zeile/Spalte in Memofeldern bestimmen ............................................................ 98918.22 Das aktuelle Wort unter dem Cursor ermitteln .......................................................... 99018.23 Einen Zeilenumbruch erzwingen ............................................................................... 99118.24 Eine Undo-Funktion realisieren ................................................................................ 99218.25 Ränder in Memofeldern setzen ................................................................................. 99318.26 Einen vergrößerten Textcursor realisieren ................................................................. 99418.27 Einen grafischen Textcursor realisieren .................................................................... 99618.28 Die Mauskoordinaten anzeigen ................................................................................. 99618.29 Den Mausbereich verkleinern ................................................................................... 99718.30 Den Mauscursor ausblenden ..................................................................................... 99918.31 Eigene Mauszeiger verwenden .................................................................................. 100018.32 Auf Mausbewegungen reagieren ............................................................................... 100318.33 Eine Menüleiste erstellen .......................................................................................... 100518.34 Ein PopUp-Menü erzeugen ....................................................................................... 101018.35 Menüeinträge zur Laufzeit erzeugen ......................................................................... 101218.36 Grafiken in Menüpunkte einbinden ........................................................................... 101418.37 Das Systemmenü verkleinern .................................................................................... 101518.38 Das Systemmenü erweitern ....................................................................................... 101718.39 Bildlaufleisten am Fensterrand positionieren ............................................................ 101818.40 Mit einem Schieberegler Werte einstellen ................................................................. 102018.41 Verknüpfte und rastende Schalter realisieren ............................................................ 1021

Page 18: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 21

18.42 Grafiken in Schaltflächen einsetzen .......................................................................... 102418.43 Eine RadioGroup programmieren ............................................................................. 102618.44 Den Anfangswert in einer Listbox setzen .................................................................. 102918.45 Die markierten Einträge einer ListBox ermitteln ....................................................... 103018.46 Die Existenz eines Listbox-Eintrags feststellen ......................................................... 103118.47 In Listenfeldern suchen ............................................................................................. 103318.48 Eine ListBox horizontal scrollen ............................................................................... 103418.49 Einträge in einer ListBox löschen ............................................................................. 103518.50 Eine intelligente ComboBox programmieren ............................................................ 103618.51 Eine ComboBox automatisch öffnen ......................................................................... 103818.52 Zwei Gitter-Komponenten synchronisieren .............................................................. 103918.53 Im StringGrid einen Zeilenumbruch durchführen ..................................................... 104018.54 Den Text im StringGrid rechtsbündig ausrichten ...................................................... 104318.55 Den Inhalt eines StringGrids in einer Datei sichern ................................................... 104418.56 Die Spalten im StringGrid automatisch anpassen ...................................................... 104818.57 Die blaue Zelle im StringGrid entfernen ................................................................... 105018.58 Grafiken im StringGrid anzeigen .............................................................................. 105118.59 Eine ComboBox im StringGrid anzeigen .................................................................. 105318.60 Zeilen in ein StringGrid einfügen/löschen ................................................................. 105618.61 Zellen im StringGrid farblich hervorheben ............................................................... 105818.62 Im StringGrid Enter- statt Tab-Taste verwenden ....................................................... 105918.63 Verschiedene ListView-Ansichten verwenden .......................................................... 106018.64 Drag & Drop in der Anwendung realisieren .............................................................. 106318.65 Komponenten zur Laufzeit verschieben .................................................................... 106618.66 Komponenten zwischen Fenstern verschieben .......................................................... 106718.67 Komponenten auf einer StatusBar platzieren ............................................................ 106918.68 Einen Schatten hinter Komponenten erzeugen .......................................................... 107018.69 Verschwundene Komponenten aufspüren ................................................................. 107218.70 Den ValueListEditor kennen lernen .......................................................................... 107218.71 Eine Uhr einblenden .................................................................................................. 107518.72 Mit dem DateTimePicker arbeiten ............................................................................ 107618.73 Ein Textverarbeitungsprogramm schreiben ............................................................... 107818.74 Ein Formular aus der DFM-Datei laden .................................................................... 108618.75 Kollegen mit einem IQ-Tester ärgern ........................................................................ 1088

Page 19: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

22 Inhaltsverzeichnis

19 How-to: Grafikprogrammierung ............................................................... 108919.1 Zwischen PaintBox und Image unterscheiden ........................................................... 108919.2 Mit der ChartFX-Komponente arbeiten .................................................................... 109219.3 Die ImageList einsetzen ............................................................................................ 109619.4 Grafiken in einem Listenfeld anzeigen ...................................................................... 109819.5 Grafiken in die Zwischenablage kopieren ................................................................. 109919.6 Bitmaps zur Laufzeit zuweisen ................................................................................. 110119.7 Eine Bitmap-Ressourcendatei erstellen ..................................................................... 110219.8 JPEG-Grafiken als Ressourcen speichern ................................................................. 110519.9 BMP in JPEG-Grafiken umwandeln ......................................................................... 110819.10 Informationen über BMP-Dateien gewinnen ............................................................. 111119.11 Eine RGB-Grafik manipulieren ................................................................................. 111319.12 Die Scanline-Eigenschaft verwenden ........................................................................ 111319.13 Mit großen Grafiken arbeiten .................................................................................... 111319.14 Gedrehten Text ausgeben .......................................................................................... 111819.15 Einen Bildausschnitt scrollen .................................................................................... 112119.16 Bitmaps manipulieren ............................................................................................... 112519.17 Eine Bitmap drehen ................................................................................................... 112819.18 Eine Lupenfunktion programmieren ......................................................................... 113019.19 Polygone zeichnen .................................................................................................... 113319.20 Grafiken auf dem Screen ausgeben ........................................................................... 113519.21 Ein Koordinatensystem erzeugen .............................................................................. 113719.22 Bézierkurven darstellen ............................................................................................. 114019.23 Spezialeffekte erzeugen ............................................................................................. 114219.24 Verschiedene Stifte erzeugen .................................................................................... 114519.25 Im Formularkopf zeichnen ........................................................................................ 114719.26 Mehrzeiligen Text ausgeben ..................................................................................... 114819.27 Einen Farbverlauf erzeugen ....................................................................................... 115119.28 Mit Paletten arbeiten ................................................................................................. 115219.29 Eine eigene Fortschrittsanzeige programmieren ........................................................ 115519.30 Einen Markierungsrahmen erzeugen ......................................................................... 115719.31 Grafiken mit Drag & Drop manipulieren .................................................................. 115919.32 Einen Desktop-Screenshot anfertigen ....................................................................... 116219.33 Einen Fenster-Screenshot erzeugen ........................................................................... 116519.34 Ein Testbild programmieren ...................................................................................... 1168

Page 20: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 23

20 How-to: Multimedia ................................................................................. 117320.1 Zeitmessungen durchführen ...................................................................................... 117320.2 Einen Screen-Saver programmieren .......................................................................... 117420.3 Einen Joystick abfragen ............................................................................................ 117920.4 Testen, ob eine Soundkarte installiert ist ................................................................... 118920.5 Töne mit bestimmten Frequenzen ausgeben .............................................................. 119020.6 WAV-Dateien abspielen ........................................................................................... 119220.7 Sound-Ressourcen in ein Programm einbinden ......................................................... 119320.8 Sound-Dateien aufnehmen ........................................................................................ 119520.9 AVI-Dateien anzeigen ............................................................................................... 119720.10 Die Ausgabefläche für AVIs anpassen ...................................................................... 120020.11 Eine AVI- Komponente programmieren ................................................................... 120120.12 AVI-Videos im Vollbildmodus abspielen ................................................................. 120720.13 Hotspots realisieren ................................................................................................... 120820.14 Hotspots auf Grafiken erzeugen ................................................................................ 120920.15 Runde Fenster erzeugen ............................................................................................ 121120.16 Ein CD-Laufwerk sicher erkennen ............................................................................ 121320.17 Eine Audio-CD erkennen .......................................................................................... 121420.18 Ein Audio-CD-Laufwerk auswählen ......................................................................... 121620.19 Die Autorun-Funktion von CDs nutzen ..................................................................... 121720.20 Das CD-Laufwerk öffnen und schließen ................................................................... 1218

21 How-to: Dateien/Verzeichnisse ............................................................... 121921.1 Kontrollieren, ob eine Diskette eingelegt ist .............................................................. 121921.2 Eine Diskette kopieren .............................................................................................. 122021.3 Eine Diskette formatieren .......................................................................................... 122121.4 Die Laufwerkstypen bestimmen ................................................................................ 122221.5 Laufwerksinformationen ermitteln ............................................................................ 122421.6 Testen, ob ein Verzeichnis existiert ........................................................................... 122821.7 Ein Verzeichnis anlegen ............................................................................................ 122921.8 Das Anwendungsverzeichnis bestimmen .................................................................. 123021.9 Einen Verzeichnisbaum darstellen ............................................................................ 123121.10 Änderungen in einem Verzeichnis überwachen ........................................................ 123721.11 Die Größe einer Datei ermitteln ................................................................................ 124021.12 Nach Dateien rekursiv suchen ................................................................................... 124221.13 Einen Dateibetrachter realisieren ............................................................................... 124421.14 Datei-Verknüpfungen nutzen .................................................................................... 1247

Page 21: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

24 Inhaltsverzeichnis

21.15 Die Shell-Funktionen zum Kopieren nutzen ............................................................. 124821.16 Eine Datei-Komponente entwickeln .......................................................................... 125221.17 Eine ASCII-ANSI-Konvertierung realisieren ............................................................ 126221.18 Einen eindeutigen TEMP-Dateinamen erzeugen ....................................................... 126321.19 Kurze Dateinamen ermitteln ..................................................................................... 126421.20 Records in einem statischen Array speichern ............................................................ 126521.21 Records in einem Stream-Objekt speichern .............................................................. 126821.22 Einen Dateidialog realisieren .................................................................................... 127121.23 Dateinamen filtern ..................................................................................................... 127521.24 Records dynamisch auf dem Heap ablegen ............................................................... 127721.25 Records in einem dynamischen Array speichern ....................................................... 128121.26 Einen FileStream als BDE-Ersatz verwenden ........................................................... 1284

22 How-to: Datenbanken .............................................................................. 128922.1 In einem Datenbank-Memofeld suchen ..................................................................... 128922.2 Ein StringGrid mit Abfrageergebnissen füllen .......................................................... 129322.3 Hierarchische Datenstrukturen darstellen .................................................................. 129422.4 Daten in einer ListView darstellen ............................................................................ 129822.5 Mit Lookup-Feldern Tabellen verknüpfen ................................................................ 130222.6 Mit Lookup-Feld und DBGrid Tabellen verknüpfen ................................................. 130422.7 Vermeiden, dass im DBGrid gelöscht wird ............................................................... 130622.8 Eine bestimmte DBGrid-Zelle markieren .................................................................. 130722.9 Die Spalteneigenschaften eines DBGrid ändern ........................................................ 130822.10 Die Sortierreihenfolge einer Tabelle ändern .............................................................. 131222.11 Den Hauptindex einer Tabelle ermitteln .................................................................... 131322.12 Prüfen, ob die BDE installiert ist ............................................................................... 131422.13 Ein Datenbankverzeichnis auswählen ....................................................................... 131522.14 Eine Datenbank mit Passwort schützen ..................................................................... 131722.15 Detaildaten anzeigen ................................................................................................. 132022.16 Einen zufälligen Datensatz auswählen ...................................................................... 132222.17 Die Datenbankstruktur bestimmen ............................................................................ 132422.18 Auf den Alias verzichten ........................................................................................... 132922.19 Die Tabellenstruktur kopieren ................................................................................... 133222.20 Das Löschen von Datensätzen verhindern ................................................................. 133422.21 Gelöschte dBASE-Records anzeigen ........................................................................ 133522.22 Mit Transaktionen arbeiten ....................................................................................... 133722.23 Die Lookup-Methode verwenden .............................................................................. 1338

Page 22: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 25

22.24 Zur Laufzeit ein Lookup-Feld erzeugen .................................................................... 134022.25 Eine Tabelle zur Laufzeit erstellen ............................................................................ 134222.26 Auf mehrere Datenbanken gleichzeitig zugreifen ..................................................... 134522.27 Bound Controls ohne BDE verwenden ..................................................................... 134622.28 Eine SoundEx-Funktion programmieren ................................................................... 134922.29 Eine tolerante Suchfunktion realisieren ..................................................................... 135222.30 Bound Controls selbst entwickeln ............................................................................. 135422.31 Eine DBCheckList programmieren ........................................................................... 136022.32 Ein Setup für Datenbankanwendungen erstellen ....................................................... 1365

23 How-to: ADO/SQL .................................................................................... 137723.1 Mit ADO auf Access-Datenbanken zugreifen ........................................................... 137723.2 Mit ADO auf Microsoft SQL Server zugreifen ......................................................... 138023.3 Eine UDL-Datei einrichten ....................................................................................... 138323.4 Access-Tabellen aus Paradox erzeugen ..................................................................... 138523.5 Paradox-Tabellen nach Access kopieren ................................................................... 139023.6 Mit Shape-Befehlen arbeiten ..................................................................................... 139323.7 Das TabControl unter ADO einsetzen ....................................................................... 139723.8 Das PageControl unter ADO einsetzen ..................................................................... 140023.9 Diagramme mit DBChart und ADO anzeigen ........................................................... 140323.10 Ein einfaches SQL-Abfrageprogramm schreiben ...................................................... 140923.11 Datumsangaben in SQL-Strings einbauen ................................................................. 141123.12 SQL-Abfrageergebnisse in einer Tabelle sichern ...................................................... 141323.13 Parameter in Abfragen verwenden ............................................................................ 141523.14 Eine CheckListBox für SQL-Abfragen nutzen .......................................................... 141723.15 Access-Datenbanken über DAO abfragen ................................................................. 1418

24 How-to: Drucker/Berichte ....................................................................... 142324.1 Einen Drucker auswählen .......................................................................................... 142324.2 In Millimetern drucken .............................................................................................. 142524.3 Pixel- und Vektorgrafiken drucken ........................................................................... 142724.4 Den Inhalt eines StringGrid ausdrucken .................................................................... 143024.5 Eine eigene Druckvorschau programmieren ............................................................. 143224.6 Eine eigene Druckausgabe realisieren ....................................................................... 143924.7 Access-Reports drucken ............................................................................................ 144324.8 Einen einfachen Rave Report erstellen ...................................................................... 144524.9 Berechnungen in Rave-Reports ausführen ................................................................ 1449

Page 23: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

26 Inhaltsverzeichnis

24.10 Parameter an Rave-Reports übergeben ...................................................................... 145324.11 Berichte verketten ..................................................................................................... 145524.12 Mit dem alten QuickReport arbeiten ......................................................................... 1455

25 How-to: Komponenten/OOP .................................................................... 145925.1 Eine einfache Klasse benutzen .................................................................................. 145925.2 Eigenschaften und Felder verstehen .......................................................................... 146225.3 Private/öffentliche Formularmethoden aufrufen ........................................................ 146525.4 Auf mehrere Formulare zugreifen ............................................................................. 146725.5 Nach Komponenten suchen ....................................................................................... 147025.6 Den Besitzer einer Komponente ermitteln ................................................................ 147125.7 Eine Ereignisprozedur zur Laufzeit zuweisen ........................................................... 147325.8 Zur Laufzeit alle Objekteigenschaften ermitteln ....................................................... 147425.9 Neue Komponenten-Packages installieren ................................................................ 147525.10 Aus einer Unit eine Komponente machen ................................................................. 147825.11 Eine Farbauswahl-Komponente programmieren ....................................................... 148525.12 Eine unsichtbare Komponente programmieren ......................................................... 148925.13 Eine grafische Komponente programmieren ............................................................. 149325.14 Eine Systemkomponente schreiben ........................................................................... 149625.15 Word-Formulare über OLE drucken ......................................................................... 150325.16 Eine .NET-Assembly einbinden ................................................................................ 1505

26 How-to: Internet/Intranet ....................................................................... 150726.1 Feststellen, ob TCP/IP auf dem PC installiert ist ....................................................... 150726.2 Die IP-Adresse des aktiven Computers ermitteln .................................................... 150826.3 Ermitteln, ob eine Internet-Verbindung besteht ......................................................... 150926.4 Dateien automatisch aus dem Internet laden ............................................................. 151126.5 Daten ins HTML-Format exportieren ....................................................................... 151226.6 Einen WebBrowser programmieren .......................................................................... 151626.7 Auf MS-Mail-Funktionen zugreifen .......................................................................... 152026.8 Mailversand über OLE-Automation realisieren ........................................................ 152326.9 Eine E-Mail automatisch generieren ......................................................................... 152526.10 Einen Web-Link in mein Programm einbauen .......................................................... 152626.11 Eine Web-Adresse aufrufen ...................................................................................... 152726.12 Den Internet Information Server installieren ............................................................. 152926.13 Eine einfache Web-Server-Anwendung verstehen .................................................... 153526.14 ADO-Recordsets an eine ASP-Seite senden .............................................................. 1537

Page 24: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 27

26.15 Eine einfache Multi-Tier-Anwendung testen ............................................................ 154226.16 Ein ClientDataSet editieren ....................................................................................... 154726.17 Mit einer SocketConnection arbeiten ........................................................................ 154926.18 Mit einer WebConnection arbeiten ........................................................................... 155326.19 Eine 3-Tier-Applikation programmieren ................................................................... 1556

27 How-to: System ....................................................................................... 156327.1 Systemzeit freigeben ................................................................................................. 156327.2 Threads verstehen ..................................................................................................... 156627.3 Windows-Botschaften verarbeiten ............................................................................ 157127.4 Den Computer herunterfahren und neu starten .......................................................... 157427.5 Ein anderes Programm starten ................................................................................... 157627.6 Daten zwischen Prozessen austauschen .................................................................... 158127.7 Mit der Registrierdatenbank arbeiten ........................................................................ 158627.8 Binäre Daten aus der Registry laden ......................................................................... 158927.9 Registry-Zweige komplett auslesen ........................................................................... 159127.10 Die installierten Anwendungen anzeigen .................................................................. 159327.11 Die Systemkonfiguration ermitteln ........................................................................... 159727.12 Das aktuelle Betriebssystem ermitteln ....................................................................... 160127.13 Alle geöffneten Windows-Fenster anzeigen .............................................................. 160327.14 Die Taskliste anzeigen .............................................................................................. 160527.15 Den EXE-Namen eines Prozesses ermitteln .............................................................. 160727.16 Die Prozess-Priorität der Anwendung ändern ........................................................... 160927.17 Die Netzwerkdialoge einbinden ................................................................................ 161127.18 Den Windows-Lizenznehmer ermitteln ..................................................................... 161327.19 Die Seriennummer der Festplatte ermitteln ............................................................... 161527.20 Unter Windows automatisch einloggen ..................................................................... 161627.21 Den System-About-Dialog anzeigen ......................................................................... 161827.22 Eine laufende EXE-Datei löschen ............................................................................. 161927.23 Uninstall-Routinen in ein Programm einbauen ......................................................... 161927.24 Den Status der CapsLock-Taste ändern ..................................................................... 162327.25 Die Anzeige kritischer Systemfehler vermeiden ....................................................... 162427.26 Eine Schriftart temporär installieren .......................................................................... 162427.27 Einen systemweiten Hot-Key setzen ......................................................................... 1626

Page 25: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

28 Inhaltsverzeichnis

28 How-to: Desktop ...................................................................................... 162928.1 Kontrollieren, ob Delphi aktiv ist .............................................................................. 162928.2 Einen mehrfachen Programmstart verhindern ........................................................... 163028.3 Programme in die Systemsteuerung integrieren ........................................................ 163128.4 Eine Anwendung in die Registry einbinden .............................................................. 163528.5 Control-Panel-Anwendungen aufrufen ...................................................................... 163728.6 Programme vor dem Task-Manager verstecken ........................................................ 163828.7 Die Taskbar Notification Area verwenden ................................................................ 164028.8 Programmgruppen erzeugen ..................................................................................... 164428.9 Verknüpfungen erzeugen .......................................................................................... 164628.10 Die Desktop-Icons ein-/ausblenden ........................................................................... 164828.11 Den Windows-Desktop-Folder ermitteln .................................................................. 164928.12 Den Desktop als Canvas verwenden ......................................................................... 165028.13 Deststellen, ob Active Desktop installiert ist ............................................................. 165128.14 Die Taskbar ausblenden ............................................................................................ 165328.15 Den Grafikmodus wechseln ...................................................................................... 165328.16 Ermitteln, ob der ScreenSaver läuft ........................................................................... 165628.17 Auf Bildschirmeigenschaften zugreifen .................................................................... 165828.18 Testen, ob große oder kleine Fonts installiert sind .................................................... 166028.19 Den Bildschirmschoner aktivieren/deaktivieren ........................................................ 166028.20 Drag & Drop mit dem Explorer realisieren ............................................................... 166128.21 System-Icons verwenden ........................................................................................... 166328.22 Den Windows-Dialog "Datei suchen" aufrufen ......................................................... 166528.23 Dateien in den Papierkorb löschen ............................................................................ 166628.24 Den Papierkorb leeren ............................................................................................... 1667

29 How-to: Wissenschaft/Technik ................................................................ 166929.1 Einen Wert schätzen .................................................................................................. 166929.2 Die Zeit auf eine Viertelstunde genau runden ........................................................... 167129.3 Zeitdifferenzen ermitteln ........................................................................................... 167229.4 Eine Prüfsumme erstellen .......................................................................................... 167429.5 Einen Text verschlüsseln ........................................................................................... 167629.6 In einer Datei sortieren und suchen ........................................................................... 167929.7 Eine Iteration verstehen ............................................................................................. 168229.8 Den Abstand zwischen zwei Punkten bestimmen ..................................................... 168529.9 Eine Unit für komplexe Zahlen entwickeln ............................................................... 168729.10 Klassen für wissenschaftliche Anwendungen ........................................................... 1694

Page 26: Walter Doberenz, Thomas Gewinnus Borland Delphi 7

Inhaltsverzeichnis 29

30 How-to: Sonstiges .................................................................................... 169930.1 Den Fensterinhalt in die Zwischenablage kopieren ................................................... 169930.2 Die Zwischenablage automatisch speichern .............................................................. 170130.3 Eine Pause realisieren ................................................................................................ 170530.4 Schleifen mit der ESC-Taste abbrechen .................................................................... 170630.5 Eine Schleife unterbrechen und fortsetzen ................................................................ 170730.6 Copyright-Meldungen in eine DLL integrieren ......................................................... 170930.7 Eine Callback-Funktion schreiben ............................................................................ 171030.8 Eine Backup-Funktion schreiben .............................................................................. 171330.9 Daten im MS Excel-Format exportieren ................................................................... 171830.10 Ressourcen einbinden ................................................................................................ 172330.11 Die Programm-Versionsnummern ermitteln ............................................................. 172730.12 Mehrsprachige Anwendungen entwickeln ................................................................ 172930.13 Den Quellcode versionsabhängig compilieren .......................................................... 173330.14 Programmeinstellungen automatisch speichern ......................................................... 173430.15 Verschwundene Komponenten aufspüren ................................................................. 173630.16 Word-Dokumente in HLP-Dateien umwandeln ........................................................ 173730.17 Eine HLP-Hilfedatei erzeugen .................................................................................. 174530.18 Eine HLP-Inhaltsdatei hinzufügen ............................................................................ 175030.19 In einer HLP-Hilfedatei blättern ................................................................................ 175330.20 Eine HLP-Datei in Delphi einbinden ......................................................................... 175530.21 Ein HLP-Makro aufrufen .......................................................................................... 175730.22 HTML-Hilfe-Dateien erstellen .................................................................................. 175830.23 HTML-Hilfe-Dateien in Delphi einbinden ................................................................ 176330.24 Auf InstallShield verzichten ...................................................................................... 176430.25 Ein selbstinstallierendes Programm schreiben .......................................................... 176730.26 Die ZIP-Routinen richtig einsetzen ........................................................................... 1775

Anhang ..................................................................................................... 1781A: Glossar ...................................................................................................................... 1781B: ANSI-Tabelle ............................................................................................................ 1785

Index ........................................................................................................ 1787