Borland Delphi 8 für.net - Grundlagen und Profiwissen

Ähnliche Dokumente
Borland Delphi 8 für.net

Programmieren lernen in Visual C#.NET

Programmieren lernen in Visual Basic.NET

Brogrammiereii lernen in

Borland Delphi Walter Doberenz, Thomas Gewinnus. Microsoft.NET Framework-Entwicklung ISBN Inhaltsverzeichnis

Inhaltsverzeichnis. Inhaltsverzeichnis

Walter Doberenz/Thomas Kowalski Programmieren lernen in

Visual Basic.NET mit Methode

C#.NET mit Methode. Professionelle Software entwickeln mit C# und.net: Grundlagen, Windows, ADO.NET, ASP.NET und Remoting. vieweg.

Borland Delphi 7 HANSER. Grundlagen, Profiwissen, Kochbuch. Walter Doberenz Thomas Gewinnus

Programmieren lernen in ASP.NET mit C#

Inhaltsverzeichnis. 1 Sprache 19. Inhaltsverzeichnis 9

Walter Doberenz Thomas Gewinnus. Visual C# 2005 HANSER

.NET Windows Forms. Markt + Technik Verlag. Chris Payne

<Trainingsinhalt> C# programmieren


Visual C#.NET --Kochbuch

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

CARL HANSER VERLAG. Walter Doberenz, Thomas Kowalski. Visual Basic.NET -- Kochbuch

Dirk Louis. Markt&Technik Buch- und Software- Verlag GmbH. Delphi 2 Delphi 2. Delphi 2. Delphi 2

Borland Delphi 3 für Einsteiger und Fortgeschrittene

Inhaltsverzeichnis. Einführung... XIII. Kapitel 1: Erstellen einer Benutzeroberfläche... 1 III

Dirk Loui. Markt&Technik Buch- und Software- Verlag GmbH. Delphi 3

jetzt lerne ich ASP.NET Dynamische Webseiten mit ASP.NET 1.1 mit Ausblick auf ASP 2.0 WENZ KORDWIG TRENNHAUS

Kurs-Dokumentation. Zentrum für Informatik ZFI AG. Refresher Microsoft Access Programmierung (PA1P-0418) -IT Ausbildung nach Mass

Inhaltsverzeichnis. Walter Doberenz, Thomas Gewinnus. Visual C# Grundlagen und Profiwissen ISBN:

Inhaltsverzeichnis. jetzt lerne ich. Vorwort 15

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

jetzt lerne ich тш^шш Visual C# 2008 Das komplette Starterkit für den erfolgreichen Einstieg Markt+Technik

Vorbemerkung 3. Aufbau des Buches 3. Teil 1 Einführung in C# 11

Inhaltsverzeichnis. Inhaltsverzeichnis 9

1 Einführung Grundlagen Fehlerbehandlung Erweiterte Grundlagen Objektorientierte Programmierung...

Visual Basic.NET und ADO.NET

Beschreibung des Angebotes. PHP Programmierung. LernenimInternet. Angebot-Nr Angebot-Nr Weiterbildung. Preis.

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 6: Fortgesch. Programmierung

Walter Doberenz, Thomas Gewinnus. Datenbankprogrammierung mit Visual Basic 2012

Microsoft.NET XML-Webdienste Schritt für Schritt

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Richtig einsteigen: Access 2007 VBA-Programmierung

Visual Basic Grundlagen und Profiwissen

ACCESS PROGRAMMIEREN GRUNDLAGEN UND PRAXISWISSEN

Thomas Gewinnus. Visual C# Grundlagen und Profiwissen. 2., aktualisierte Auflage HANSER

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Beck EDV-Berater VBA. Visual Basic for Applications Programmieren unter Office XP. 2., neu bearbeitete Auflage

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

TURBO PASCAL VERSION 5.5

Inhaltsverzeichnis. jetzt lerne ich

1 Einführung 1. 2 Einrichten der Arbeitsumgebung 9. 3 Schnelleinstieg in Xcode und Objective-C 25

Java-Grundkurs für Wirtschaftsinformatiker

Richtig einsteigen: Access 2010 VBA-Programmierung

Das Einsteigerseminar ASP

Visual C# 2008 Grundlagen und Profiwissen

<Trainingsinhalt> XML und Datenbanken

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

Charles Petzold. Windows 95. Programmierung ; ' :,:" 'üijijsarkmüw.flsfflfi <<>\ lll i '»,, 'S ) ;ji*roi/;>w >JG

Walter Doberenz Thomas Kowalski. Borland. Grundlagen und Profiwissen HANSER

Visual Basic Kochbuch. von Walter Doberenz, Thomas Gewinnus. 1. Auflage. Hanser München 2006

Inhaltsverzeichnis. jetzt lerne ich

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Inhaltsverzeichnis ... Danksagung 11. Einführung 13. Wie Sie Ihr erstes objektorientiertes Programm schreiben 23

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Objektorientierte Programmierung in Java

Einstieg in Visual C# 2010 Galileo Press

2 Anlegen und Konfigurieren von Datenbanken 35

Inhaltsverzeichnis. 1 Einleitung 9. Inhalt

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung 11. Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen 17

Inhaltsverzeichnis. Walter Doberenz, Thomas Gewinnus. Der Visual C#-Programmierer. Visual C# lernen - Professionell anwenden - Lösungen nutzen

101 VisualBasic.NET Anwendungen

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Das Einsteigerseminar Objektorientierte Programmierung in Java

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

Walter Doberenz Thomas Kowalski Visual C#.NET Kochbuch

Inhaltsverzeichnis Einleitung Imperative Sprachkonzepte Objektorientierte Sprachkonzepte

Programmieren in Lua

Michael und Eva : ProfeSSiORoi' c Kolberg : öeries VB.NET. Das Proxisbuch. Mit 188 Abbildungen. Franzis

Object Pascal mit Delphi

Inhaltsverzeichnis.

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

<Trainingsinhalt> ASP.NET programmieren

Visual Basic.NET undado.net

Einstieg in Visual Basic 2015

Visual C Markt+Technik DIRK LOUIS. Der schnelle und einfache Einstieg in die Windows-Programmierung

Python. Grundlagen, fortgeschrittene Programmierung und Praxis

I Inhaltsverzeichnis B Beispielverzeichnis Vorwort... 17

Werner Achte rt DATA BECKER

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

2 Wegweiser Projektbeschreibung...69

Visual C# 2008 Kochbuch

Inhalt. Einführung 15. Grundlagen 37

Delphi Autor Elmar Warken. An imprint of Pearson Education

Helma Spona. Windows PowerShell. Galileo Press

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

Wissenschaftliche Arbeiten mit

C++GUI Programmierung mit Qt 4

Transkript:

Borland Delphi 8 für.net - Grundlagen und Profiwissen Walter Doberenz, Thomas Kowalski ISBN 3-446-22622-2 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22622-2 sowie im Buchhandel

Inhaltsverzeichnis 9 Inhaltsverzeichnis 1 Der Schnelleinstieg in Delphi.NET... 29 1.1 Die Werkstatt einrichten...31 1.1.1 Software Delphi 8...31 1.1.2 Hardware...32 1.1.3 Vorbereitende Installationen...32 1.1.4 Installation von Delphi 8...35 1.1.5 Die Dokumentation...38 1.2 Unser erstes Delphi.NET-Programm...40 1.2.1 Vorbereitungen...40 1.2.2 Programm schreiben...43 1.2.3 Programm compilieren...44 1.2.4 Programm testen...44 1.2.5 Eine Konsolenanwendung ist langweilig!...45 1.3 Die Windows-Philosophie...45 1.3.1 Mensch-Rechner-Dialog...45 1.3.2 Objekt- und ereignisorientierte Windows-Programmierung...46 1.3.3 Windows-Programmierung mit Borland Delphi 8...47 1.4 Die Entwicklungsumgebung von Delphi 8...49 1.4.1 Die Startseite...49 1.4.2 Die wichtigsten Fenster...50 1.5 Unsere ersten Windows-Anwendungen...56 1.5.1 Windows Forms-Anwendung für Einsteiger...56 1.5.2 Windows-Anwendung für fortgeschrittene Einsteiger...60 1.5.3 Unsere erste Datenbankanwendung...67 2 Grundlegende Sprachelemente... 71 2.1 Ein erster Blick auf Object-Pascal...73 2.1.1 Schreibweise...73 2.1.2 Bezeichner...76

10 Inhaltsverzeichnis 2.2 Datentypen, Variablen und Konstanten... 79 2.2.1 Einfache vordefinierte Datentypen... 79 2.2.2 Deklaration von Variablen... 81 2.2.3 Konstanten deklarieren... 82 2.3 Operatoren... 82 2.3.1 Arithmetische Operatoren... 83 2.3.2 Logische Operatoren... 83 2.3.3 Rangfolge der Operatoren... 85 2.4 Konvertieren von Datentypen... 86 2.4.1 Implizite Typkonvertierung... 87 2.4.2 Explizite Typkonvertierung... 87 2.4.3 Konvertieren von String... 88 2.4.4 Boxing/Unboxing... 90 2.5 Kontrollstrukturen... 90 2.5.1 Schleifenanweisungen... 91 2.5.2 Verzweigungen... 92 2.6 Benutzerdefinierte Datentypen... 94 2.6.1 Records... 94 2.6.2 Statische Arrays... 96 2.6.3 Dynamische Arrays... 99 2.6.4 Mengen... 103 2.7 Selbst definierte Funktionen und Prozeduren... 105 2.7.1 Die Parameterliste... 105 2.7.2 Parameterübergabe als Wert oder Referenz... 106 2.7.3 Funktion oder Prozedur?... 106 2.7.4 Überladene Routinen... 108 2.8 Lernbeispiele für Anfänger... 108 2.8.1 Übung 1... 109 2.8.2 Übung 2... 112 2.8.3 Übung 3... 114 2.8.4 Übung 4... 117

Inhaltsverzeichnis 11 2.8.5 Übung 5...121 2.8.6 Übung 6...124 2.9 Praxisbeispiele für Fortgeschrittene...127 2.9.1 Überladen von Funktionen...127 2.9.2 Speichern von Records in einem statischen Array...130 2.9.3 Experimente mit der Format-Funktion...134 3 Delphi.NET-Grundlagen...139 3.1 Delphi 8 für.net ein Überblick...141 3.1.1 Besonderheiten der Sprache Delphi...141 3.1.2 Microsofts.NET-Technologie...142 3.1.3.NET-Features und Begriffe...143 3.1.4 Metadaten und Reflexion...148 3.1.5 Attribute...149 3.1.6 Serialisierung...150 3.1.7 Multithreading...151 3.1.8 Objektorientierte Programmierung pur...151 3.2 Die wichtigsten Neuheiten in Delphi 8...151 3.2.1 Bezeichner (Identifiers)...152 3.2.2 Was passierte mit den Units?...152 3.2.3 Grundlegende Datentypen...154 3.2.4 Records...156 3.2.5 Strings und andere Verweistypen...158 3.2.6 Benutzen des Typs PChar...160 3.2.7 Sichere Typkonvertierung...161 3.2.8 Neuigkeiten bei den Klassen...162 3.2.9 Class Helpers...166 3.2.10 Eigenschaften...167 3.2.11 Array-Properties...167 3.2.12 Ereignisse...168 3.2.13 Saubere Interfaces...170

12 Inhaltsverzeichnis 3.2.14 Operatoren auf neuen Fundamenten... 171 3.2.15 Garbage Collection... 173 3.2.16 Weitere Neuigkeiten... 176 3.3 Praxisbeispiele... 176 3.3.1 Stringaddition... 176 3.3.2 Zugriff auf protected Felder... 181 3.3.3 Klassen erweitern mit ClassHelper... 185 3.3.4 Arrayeigenschaften überladen... 189 3.3.5 Mit Interfaces arbeiten... 192 3.3.6 Überladene Operatoren einsetzen... 198 3.3.7 Den Garbage Collector verstehen... 202 3.3.8 Externe Ressourcen freigeben... 205 4 Objektorientiertes Programmieren...209 4.1 Kleiner OOP-Crashkurs... 211 4.1.1 Klassen und Objekte verstehen... 211 4.1.2 Konstruktor... 217 4.1.3 Read-Only-Eigenschaften programmieren?... 219 4.1.4 Ereignisse... 221 4.1.5 Vererbung und Polymorphie... 224 4.2 Design Pattern ein Schreckgespenst?... 232 4.2.1 Was sind Design Patterns und braucht man sie überhaupt?... 233 4.2.2 Das Observer Pattern... 234 4.2.3 Klassische Implementierung mit Interfaces und Callbacks... 239 4.2.4 Implementierung auf Basis von Delegates und Events... 249 4.2.5 Implementierung auf Basis des Event-Pattern... 254 4.2.6 Implementierung mit Event Pattern und I/O-User Interface... 259 4.2.7 Schlussbemerkungen... 266 5 Formulare und Komponenten...267 5.1 Allgemeines über Steuerelemente... 269

Inhaltsverzeichnis 13 5.1.1 Standardeigenschaften...269 5.1.2 Standardereignisse...271 5.1.3 Standardmethoden...279 5.2 Windows-Formulare...280 5.2.1 Übersicht...280 5.2.2 Festlegen des Startfensters (MainForm)...287 5.2.3 Fenster aufrufen...288 5.2.4 Ausrichten und Platzieren von Komponenten...290 5.2.5 Tabulatorreihenfolge...293 5.2.6 Menüs erzeugen...293 5.2.7 Menüs zur Laufzeit erzeugen...296 5.2.8 Mehr Transparenz bitte...297 5.2.9 Von echten und falschen MDI-Fenstern...297 5.3 Die Windows Forms-Komponenten...303 5.3.1 Label...303 5.3.2 LinkLabel...304 5.3.3 Button...305 5.3.4 TextBox...306 5.3.5 MainMenu...308 5.3.6 CheckBox...308 5.3.7 RadioButton...309 5.3.8 GroupBox...310 5.3.9 PictureBox...310 5.3.10 Panel...310 5.3.11 Splitter...312 5.3.12 ListBox...312 5.3.13 CheckedListBox...314 5.3.14 ComboBox...315 5.3.15 TabControl...315 5.3.16 HScrollBar, VScrollBar...317 5.3.17 DateTimePicker...318

14 Inhaltsverzeichnis 5.3.18 MonthCalendar... 318 5.3.19 Timer... 319 5.3.20 DomainUpDown... 320 5.3.21 NumericUpDown... 320 5.3.22 TrackBar... 321 5.3.23 ProgressBar... 321 5.3.24 ImageList... 322 5.3.25 ListView... 323 5.3.26 TreeView... 324 5.3.27 ToolBar... 327 5.3.28 StatusBar... 329 5.3.29 RichTextBox... 329 5.3.30 DataGrid... 330 5.3.31 HelpProvider... 330 5.3.32 ToolTip... 330 5.3.33 ContextMenu... 330 5.3.34 NotifyIcon... 331 5.3.35 PrintPreviewControl... 332 5.3.36 PrintDocument... 332 5.3.37 OpenFileDialog/SaveFileDialog... 332 5.3.38 FontDialog, ColorDialog... 334 5.3.39 PrintDialog, PrintPreviewDialog, PageSetupDialog... 334 5.4 Weitere wichtige Objekte/Klassen... 334 5.4.1 Application... 334 5.4.2 Screen... 335 5.4.3 Clipboard... 336 5.4.4 Debug... 336 5.5 Praxisbeispiele... 336 5.5.1 Controls zur Laufzeit erzeugen... 336 5.5.2 DoEvents verwenden... 338 5.5.3 Eine Pause realisieren... 341

Inhaltsverzeichnis 15 5.5.4 ListView und ImageList kennen lernen...343 5.5.5 Mehr über den Screen erfahren...347 5.5.6 Drag & Drop verwenden...349 5.5.7 XP-Styles verwenden...353 6 Grafikprogrammierung...355 6.1 Übersicht und erste Schritte...357 6.1.1 Was ist neu?...358 6.1.2 Das Grundkonzept von GDI+...359 6.1.3 Änderungen an der PaintBox-Komponente...360 6.1.4 Namespaces für die Grafikausgabe...360 6.1.5 Einige Hinweise für den Umsteiger von Delphi (< 8.0)...362 6.2 Darstellen von Grafiken...362 6.2.1 Die PictureBox-Komponente...363 6.2.2 Das Image-Objekt...364 6.2.3 Laden von Grafiken zur Laufzeit...365 6.2.4 Sichern von Grafiken...365 6.2.5 Grafikeigenschaften ermitteln...366 6.2.6 Erzeugen von Vorschaugrafiken (Thumbnails)...367 6.2.7 Die Methode RotateFlip...368 6.2.8 Skalieren von Grafiken...369 6.3 Das.NET-Koordinatensystem...370 6.3.1 Globale Koordinaten...371 6.3.2 Seitenkoordinaten (globale Transformation)...371 6.3.3 Gerätekoordinaten (Seitentransformation)...374 6.4 Grundlegende Zeichenfunktionen von GDI+...375 6.4.1 Das zentrale Graphics-Objekt...375 6.4.2 Punkte zeichnen/abfragen...377 6.4.3 Linien...378 6.4.4 Kantenglättung mit Antialiasing...378 6.4.5 PolyLine...380

16 Inhaltsverzeichnis 6.4.6 Rechtecke... 380 6.4.7 Polygone... 382 6.4.8 Splines... 383 6.4.9 Bézierkurven... 385 6.4.10 Kreise und Ellipsen... 386 6.4.11 Tortenstück (Segment)... 386 6.4.12 Bogenstück... 388 6.4.13 Wo sind die Rechtecke mit den "runden Ecken"?... 389 6.4.14 Textausgabe... 390 6.4.15 Ausgabe von Grafiken... 395 6.5 Unser Werkzeugkasten... 397 6.5.1 Einfache Objekte... 397 6.5.2 Vordefinierte Objekte... 398 6.5.3 Farben/Transparenz... 401 6.5.4 Stifte (Pen)... 402 6.5.5 Übersicht Pinsel (Brush)... 406 6.5.6 SolidBrush... 407 6.5.7 HatchBrush... 407 6.5.8 TextureBrush... 408 6.5.9 LinearGradientBrush... 409 6.5.10 PathGradientBrush... 410 6.5.11 Fonts... 412 6.5.12 Path-Objekt... 413 6.5.13 Clipping/Region... 416 6.6 Low Level-Grafikmanipulationen... 420 6.6.1 Worauf zeigt Scan0?... 421 6.6.2 Anzahl der Spalten bestimmen... 422 6.6.3 Anzahl der Zeilen bestimmen... 422 6.6.4 Der Zugriff im Detail... 422 6.6.5 Invertieren... 425 6.6.6 In Graustufen umwandeln... 426

Inhaltsverzeichnis 17 6.6.7 Heller/Dunkler...427 6.6.8 Kontrast...429 6.6.9 Ausblick...431 6.7 Standarddialoge...431 6.7.1 Schriftauswahl...431 6.7.2 Farbauswahl...433 6.8 Praxisbeispiele...435 6.8.1 Graphics-Objekts erzeugen...435 6.8.2 Grafik erzeugen und speichern...439 6.8.3 Einen Desktop-Screenshot realisieren...440 6.8.4 Grafiken aus den Ressourcen laden...442 7 Dateien und Streams...445 7.1 Operationen mit Verzeichnissen und Dateien...447 7.1.1 Klassen für Verzeichnis- und Dateioperationen...447 7.1.2 Verzeichnisse erzeugen und löschen...447 7.1.3 Verzeichnisse verschieben und umbenennen...448 7.1.4 Aktuelles Verzeichnis ermitteln bzw. festlegen...448 7.1.5 Unterverzeichnisse ermitteln...449 7.1.6 Anwenden der Path-Klasse...449 7.1.7 Dateien kopieren, verschieben und umbenennen...450 7.1.8 Dateiattribute feststellen...451 7.1.9 Weitere Datei-Eigenschaften...452 7.1.10 Statische oder Instanzen-Klasse?...454 7.1.11 Überwachung von Änderungen im Dateisystem...454 7.2 Lesen und schreiben von Dateien...455 7.2.1 Übersicht...456 7.2.2 Dateiparameter...457 7.2.3 Textdateien...458 7.2.4 Binärdateien...460 7.2.5 Sequenzielle (typisierte) Dateien...461

18 Inhaltsverzeichnis 7.3 Praxisbeispiele... 463 7.3.1 Lesen der Datei-Infos... 463 7.3.2 Lese- und Schreibzugriff auf eine Textdatei... 465 7.3.3 Auf eine Datei byteweise zugreifen... 467 7.3.4 Eine sequenzielle Datei lesen und schreiben... 469 7.3.5 Sequenzielle Datei mit serialisierten Objekten... 475 8 Datenbankzugriff mit ADO.NET...479 8.1 Grundlagen des Datenbankzugriffs... 481 8.1.1 Das Prinzip von ADO.NET... 481 8.1.2 Ohne XML geht gar nichts mehr... 483 8.2 Die wichtigsten Klassen in ADO.NET... 484 8.2.1 Die Datenprovider... 484 8.2.2 Das Zusammenspiel der ADO.NET-Klassen... 485 8.2.3 Die.NET-Datenprovider... 487 8.3 Praxisbeispiele... 489 8.3.1 Zugriff auf eine Access-Datenbank... 489 8.3.2 Verbindungen mit dem Assistenten einrichten... 493 8.3.3 Borland Data Provider benutzen... 498 8.3.4 Zugriff auf den Microsoft SQL Server... 502 8.3.5 Den DataReader kennen lernen... 505 8.3.6 Auswahlabfragen mit Access... 506 8.3.7 Die Spalten im DataGrid formatieren... 509 8.3.8 Master-Detailbeziehungen im DataGrid anzeigen... 511 8.3.9 Mit der ComboBox zwei Tabellen verknüpfen... 514 8.3.10 Steuerelemente an die Datenquelle binden... 519 9 Druckausgabe...527 9.1 Einstieg und Übersicht... 529 9.1.1 Nichts geht über ein Beispiel!... 529 9.1.2 Programmiermodell... 531

Inhaltsverzeichnis 19 9.1.3 Kurzübersicht der Objekte...532 9.2 Auswerten der aktuellen Druckereinstellungen...532 9.2.1 Die vorhandenen Drucker...533 9.2.2 Der Standarddrucker...533 9.2.3 Verfügbare Papierformate/Seitenabmessungen...534 9.2.4 Der eigentliche Druckbereich...535 9.2.5 Seitenausrichtung ermitteln...536 9.2.6 Ermitteln der Farbfähigkeit...537 9.2.7 Die Druckauflösung abfragen...537 9.2.8 Ist beidseitiger Druck möglich?...537 9.2.9 Einen "Informationsgerätekontext" erzeugen...538 9.2.10 Abfragen von Werten während des Drucks...538 9.3 Festlegen von Druckereinstellungen...539 9.3.1 Einen Drucker auswählen...539 9.3.2 Drucken in Millimetern...539 9.3.3 Festlegen der Seitenränder...540 9.3.4 Druckjobname...541 9.3.5 Anzahl der Kopien...542 9.3.6 Beidseitiger Druck...542 9.3.7 Seitenzahlen festlegen...543 9.3.8 Druckqualität...545 9.4 Die Druckdialoge...545 9.4.1 PrintDialog...545 9.4.2 PageSetupDialog...546 9.4.3 PrintPreviewDialog...549 9.4.4 Ein eigenes Druckvorschau-Fenster realisieren...550 9.5 Komplexbeispiel...551 9.5.1 Oberfläche (Hauptformular WinForm1)...551 9.5.2 Oberfläche (Druckvorschau WinForm2)...552 9.5.3 Quelltext (WinForm1)...552 9.5.4 Quelltext (WinForm2)...559

20 Inhaltsverzeichnis 9.6 Drucken mit OLE-Automation... 561 9.6.1 Übersicht OLE mit MS Word... 562 9.6.2 Mit MS Word neue Dokumente erstellen... 564 9.6.3 Mit Word Formulare drucken... 569 10 Webbasierte Anwendungen...573 10.1 ASP.NET eine Übersicht... 575 10.1.1 ASP der Blick zurück... 575 10.1.2 Was ist bei ASP.NET anders?... 576 10.1.3 Was gibt es noch in ASP.NET?... 578 10.1.4 Vorteile von ASP.NET gegenüber ASP... 579 10.1.5 Voraussetzungen für den Einsatz von ASP.NET... 580 10.1.6 Und was hat das alles mit Delphi.NET zu tun?... 580 10.2 Unsere erste Web-Anwendung... 583 10.2.1 Visueller Entwurf der Bedienoberfläche... 583 10.2.2 Zuweisen der Objekteigenschaften... 585 10.2.3 Verknüpfen der Objekte mit Ereignissen... 587 10.2.4 Programm compilieren und testen... 589 10.3 Die ASP.NET-Projektdateien... 590 10.3.1 Die Projektdatei... 590 10.3.2 Die Datei Global.pas... 591 10.3.3 ASPX-Datei(en)... 592 10.3.4 Die PAS-Datei(en)... 594 10.3.5 Das Startformular... 595 10.3.6 Die Datei Web.config... 596 10.4 Lernen am Beispiel... 597 10.4.1 Erstellen des Projekts... 598 10.4.2 Oberflächengestaltung... 599 10.4.3 Ereignisprogrammierung... 600 10.4.4 Ein Fehler, was nun?... 601 10.4.5 Ereignisse von Textboxen... 603

Inhaltsverzeichnis 21 10.4.6 Ein gemeinsamer Ereignis-Handler...603 10.4.7 Ausgaben in einer Tabelle...604 10.4.8 Zusammenspiel mehrerer Formulare...607 10.4.9 Ärger mit den Cookies...609 10.5 Die Validator-Controls...611 10.5.1 Übersicht...611 10.5.2 Wo findet die Fehlerprüfung statt?...612 10.5.3 Verwendung...612 10.5.4 RequiredFieldValidator...613 10.5.5 CompareValidator...614 10.5.6 RangeValidator...616 10.5.7 RegularExpressionValidator...617 10.5.8 CustomValidator...618 10.5.9 ValidationSummary...620 10.5.10 Validierung zeitweise verhindern...621 10.6 Wichtige ASP.NET-Objekte...621 10.6.1 Session...621 10.6.2 Application...623 10.6.3 Page...626 10.6.4 Request...629 10.6.5 Response...632 10.6.6 Cookies verwenden...637 10.7 ASP.NET-Fehlerbehandlung...640 10.7.1 Fehler beim Entwurf...640 10.7.2 Laufzeitfehler...641 10.7.3 Eine eigene Fehlerseite...643 10.7.4 Fehlerbehandlung im WebForm...643 10.7.5 Fehlerbehandlung in der Anwendung...645 10.7.6 Lokale Fehlerbehandlung...646 10.7.7 Seite nicht gefunden! Was nun?...646 10.8 Und wo bleibt die Datenbindung?...647

22 Inhaltsverzeichnis 10.8.1 Einstiegsbeispiel die Microsoft-Variante... 647 10.8.2 Einstiegsbeispiel Verwendung der Borland-Controls... 650 10.8.3 Paging im DataGrid... 655 10.8.4 Daten im DataGrid sortieren... 657 10.8.5 Daten im DataGrid editieren... 659 10.8.6 Einträge im DataGrid löschen... 663 10.8.7 Master-Detailbeziehungen mit dem DataGrid darstellen... 664 10.9 E-Mail-Versand in ASP.NET... 666 10.9.1 Übersicht... 666 10.9.2 Einfache Text-E-Mails... 667 10.9.3 E-Mails mit Dateianhang... 668 10.10 Sicherheit von Webanwendungen... 669 10.10.1 Authentication... 669 10.10.2 Realisierung Forms Authentication... 671 10.10.3 Impersonation... 676 10.10.4 Authorization... 679 10.11 Tipps & Tricks... 682 10.11.1 Verwenden eines alternativen Web-Servers... 682 10.11.2 ASP.NET-Anwendung von CD installieren... 684 10.11.3 Probleme mit dem SQL Server-Login... 686 10.11.4 Doppelte Anmeldung verhindern... 687 11 Webdienste &.NET-Remoting...689 11.1 Einsteigerbeispiel... 691 11.1.1 Projekt vorbereiten... 691 11.1.2 Webmethode implementieren... 693 11.1.3 Programm testen... 695 11.1.4 Unser Endverbraucher der Webdienst-Client... 697 11.2 Grundlagen... 700 11.2.1 Wozu braucht man einen Webdienst?... 700 11.2.2 Was versteht man unter SOAP?... 701

Inhaltsverzeichnis 23 11.2.3 WSDL noch eine Sprache?...701 11.2.4 Wozu dient das DISCO-Dokument?...701 11.2.5 Wie funktioniert ein Webdienst?...702 11.2.6 Darf ich meine lokalen Klassen weiter verwenden?...704 11.2.7 Was ist mit der Schnittstellen-Kompatibilität?...704 11.3 Ein Webdienst im Detail...704 11.3.1 Aufgabenstellung...705 11.3.2 Webdienst-Projekt eröffnen...705 11.3.3 Die Projektdateien...706 11.3.4 Namensgebung...708 11.3.5 Ihr Quellcode...709 11.3.6 Webdienst testen...711 11.4 Ein Webdienstclient im Detail...715 11.4.1 Aufgabenstellung...716 11.4.2 Webdienstclient-Projekt eröffnen...716 11.4.3 Webverweis hinzufügen...716 11.4.4 Die Projektdateien...717 11.4.5 Ihr Quellcode...720 11.4.6 Webdienstclient testen...723 11.4.7 Verbesserungen...723 11.4.8 Zugriff verweigert (Access denied)...723 11.5 Web-Methoden asynchron abrufen...725 11.5.1 Synchrone und asynchrone Methoden...725 11.5.2 Bedienoberfläche für Testclient...725 11.5.3 Quellcode für Testclient...726 11.5.4 Client testen...728 11.5.5 Bemerkungen...728 11.6 Ausführung von Webmethoden überwachen...729 11.6.1 Benutzerschnittstelle...729 11.6.2 Die Implementierung...730 11.7 Probleme mit Zugriffsrechten...732

24 Inhaltsverzeichnis 11.7.1 Fehlende Schreibrechte bei Access-Datenbanken... 732 11.7.2 Benutzer ASPNET hinzufügen... 733 11.7.3 Impersonation... 734 11.7.4 Fehler beim Aufrufen einer WebService-Methode... 735 11.8 Sicherheit von Webdiensten... 736 11.8.1 Digitale Signatur von SOAP-Nachrichten... 737 11.8.2 Verschlüsseln von SOAP-Nachrichten... 738 11.9.NET-Remoting... 739 11.9.1 Grundlagen... 739 11.9.2 Objektaktivierung/Instanziierung... 739 11.9.3 Weitere Begriffe... 741 11.9.4 Bereitstellen der Objekte... 742 11.10 Komplexbeispiel Remote Objects... 743 11.10.1 Die Interface-Assembly... 743 11.10.2 Oberfläche Serveranwendung... 744 11.10.3 Namespaces einbinden... 745 11.10.4 Das eigentliche Server-Objekt... 746 11.10.5 Die Server-Implementierung... 749 11.10.6 Die Client-Oberfläche... 751 11.10.7 Client-Quellcode... 751 11.10.8 Test... 754 12 Komponentenentwicklung...757 12.1 Überblick... 759 12.1.1 Benutzerdefiniertes Steuerelement (Komponente für Windows Forms)... 760 12.1.2 Benutzersteuerelement (User Control für Windows Forms)... 763 12.1.3 Komponentenklasse... 766 12.2 Eigenschaften... 767 12.2.1 Einfache Eigenschaften... 767 12.2.2 Schreib-/Lesezugriff (Read/Write)... 767 12.2.3 Nur Lese-Eigenschaft (ReadOnly)... 770

Inhaltsverzeichnis 25 12.2.4 Nur-Schreibzugriff (WriteOnly)...770 12.2.5 Ausblenden im Objektinspektor...771 12.2.6 Hinzufügen von Beschreibungen...772 12.2.7 Einfügen in Kategorien...772 12.2.8 Standard-Eigenschaft (Default-Property)...773 12.2.9 Wertebereichsbeschränkung und Fehlerprüfung...774 12.2.10 Klasseneigenschaften...774 12.2.11 Eigenschaften von Aufzählungstypen...775 12.2.12 Objekt-Eigenschaften...777 12.2.13 Indexers/Array-Eigenschaften...780 12.3 Methoden...783 12.3.1 Konstruktor...783 12.3.2 Class-Konstruktor...785 12.3.3 Destruktor...786 12.3.4 Aufruf von Basisklassen-Methoden...787 12.4 Ereignisse (Events)...787 12.4.1 Vergessen Sie read und write!...787 12.4.2 Ereignis mit Standardargument definieren...789 12.4.3 Ereignis mit eigenen Argumenten...791 12.4.4 Ein Default-Ereignis festlegen...792 12.4.5 Mit Ereignissen auf Windows-Messages reagieren...792 12.5 Assembly, Library, Package?...794 12.5.1 Package...794 12.5.2 Library (Bibliothek)...796 12.5.3 Assembly-Informationen festlegen...798 12.5.4 Assemblies signieren...800 12.6 Tipps & Tricks...800 12.6.1 Eine Bitmap für die Toolpalette zuweisen...800 12.6.2 Fehlermeldung beim Compilieren vermeiden...802

26 Inhaltsverzeichnis 13 Techniken der Programmentwicklung...805 13.1 Arbeiten mit dem Debugger... 807 13.1.1 Arbeitszyklus des Programmierers... 807 13.1.2 Vorbereitungen zum Debugging... 808 13.1.3 Die verschiedenen Debug-Möglichkeiten... 809 13.1.4 Beispielprogramm für das Debugging... 810 13.1.5 Haltepunkte setzen... 812 13.1.6 Abbruchbedingung setzen... 812 13.1.7 Durchlaufzähler verwenden... 813 13.1.8 Einzelschritt-Modus... 814 13.1.9 Prozedurschritt... 814 13.1.10 Auswerten von Ausdrücken... 815 13.1.11 Das Debug-Objekt... 815 13.2 Fehlerbehandlung in Delphi.NET... 817 13.2.1 Anweisungen zur Fehlerbehandlung... 818 13.2.2 Try-Except... 819 13.2.3 Ausnahmen über Fehlerklassen auswerten... 820 13.2.4 Spezifische Fehlerklassen auswerten... 820 13.2.5 Fehler erneut auslösen... 822 13.2.6 Verschachtelte Fehlerbehandlung... 822 13.2.7 Try-Finally... 824 13.2.8 Anwendungsweite Fehlerbehandlung... 826 13.2.9 Die Exception-Klasse... 827 13.2.10 Fehler/Ausnahmen auslösen... 828 13.2.11 Eigene Fehlerklassen... 829 13.3 Dialogfenster... 832 13.4 Zwischenablage... 835 13.4.1 Das Clipboard-Objekt... 835 13.4.2 Zwischenablage-Funktionen für Textboxen... 836 13.5 Registry... 837 13.5.1 Allgemeines... 837

Inhaltsverzeichnis 27 13.5.2 Registry-Unterstützung in Delphi.NET...839 13.5.3 Dateiverknüpfungen erzeugen...841 13.6 Multithreading...843 13.6.1 Einführungsbeispiel Thread-Klasse...843 13.6.2 Thread-Methoden...845 13.6.3 Threadpool...847 13.6.4 Thread-Locking...849 13.6.5 Interaktion mit der Programmoberfläche...852 13.6.6 Timer-Threads...855 13.6.7 Asynchrone Delegate-Aufrufe mit BeginInvoke...856 13.7.NET-Reflection...857 13.7.1 Übersicht...857 13.7.2 Assembly laden...857 13.7.3 Mit Type Informationen sammeln...858 13.7.4 Late Binding mit Invoke...859 13.7.5 Ressourcen mit Reflection auslesen...863 13.7.6 Der.NET-Reflector...864 13.7.7 Gegen die Neugier...865 13.8 Hilfedateien programmieren...866 13.8.1 Übersicht HTML-Hilfedateien...866 13.8.2 Der HTML Help Workshop...867 13.9 Hilfe in Delphi.NET einbinden...871 13.9.1 Das Help-Objekt...871 13.9.2 Die HelpProvider-Komponente...873 13.10 Distribution von Anwendungen...875 13.10.1 System- und Softwarevoraussetzungen...876 13.10.2 Das Setup-Projekt...876 13.10.3 Zielsystem konfigurieren...880 13.10.4 Setup-Darstellung anpassen...882 13.10.5 Release vorbereiten...883

28 Inhaltsverzeichnis 13.11 Praxisbeispiele... 886 13.11.1 Zwischenablage überwachen... 886 13.11.2 Verwendung der Registry... 890 13.11.3 Spieltrieb & Multithreading... 892 13.11.4 Selbstdefinierte Attribute und Reflection... 903 13.11.5 Typ-Informationen gewinnen... 910 13.11.6 Kommandozeilenparameter an eine Anwendung übergeben... 912 13.11.7 Environment-Variablen auslesen... 915 Anhang... 917 A: Verzeichnis der Abkürzungen... 917 B: ANSI-Tabelle... 921 C: Inhaltsverzeichnis Delphi 8 für.net-kochbuch... 923 Index... 929