Upload
others
View
36
Download
1
Embed Size (px)
Citation preview
Entwicklerhandbuch
Inprise GmbH, Robert-Bosch-Strae 11, D-63225 Langen
Borland
Delphi
5fr Windows 95, Windows 98 & Windows NT
Copyright 1998, 1999 Inprise, Inc. Alle Rechte vorbehalten. Alle Produktnamen von Inprise sind eingetragene Warenzeichen der Inprise, Inc.
Deutsche Ausgabe 1999 Inprise GmbH, Robert-Bosch-Strae 11, D-63225 Langen, Telefon 06103/979-0, Fax 06103/979-290
Update/bertragung ins Deutsche: Krieger, Zander & Partner GmbH, Mnchen
Satz: Krieger, Zander & Partner GmbH, Mnchen
Hauptsitz: 100 Enterprise Way, P.O. Box 660001, Scotts Valley, CA 95067-0001, +1-(408)431-1000
Niederlassungen in: Australien, Deutschland, Frankreich, Grobritannien, Hong Kong, Japan, Kanada, Lateinamerika, Mexiko, den Niederlanden und Taiwan
HDA1350GE21001
i
Kapitel 1Einfhrung 1-1Inhalt dieses Handbuchs . . . . . . . . . . . . . 1-1Typographische Konventionen . . . . . . . . . . 1-3Inprise Developer Support Services . . . . . . . 1-3Gedruckte Dokumentation . . . . . . . . . . . . 1-3
Teil IProgrammieren mit Delphi
Kapitel 2Object Pascal mit der VCL verwenden2-1
Object Pascal und die VCL . . . . . . . . . . . . 2-1Das Objektmodell . . . . . . . . . . . . . . . . . 2-2
Was ist ein Objekt? . . . . . . . . . . . . . . . 2-2Ein Delphi-Objekt untersuchen . . . . . . 2-3
Daten und Quelltext von einem Objekt erben 2-5Objekte, Komponenten und Steuer-
elemente . . . . . . . . . . . . . . . . . . 2-6Gltigkeitsbereich und Qualifizierer . . . . . 2-6
private-, protected-, public- und published-Deklarationen. . . . . . . . . 2-7
Objektvariablen verwenden. . . . . . . . . . 2-8Objekte erstellen, instantiieren und
freigeben. . . . . . . . . . . . . . . . . . . . 2-9Komponenten und Eigentmer . . . . . . 2-10
Komponenten verwenden . . . . . . . . . . . . 2-10Die Delphi-Standardkomponenten. . . . . . 2-10
Eigenschaften aller visuellen Komponenten . . . . . . . . . . . . . . . 2-11
Textkomponenten. . . . . . . . . . . . . . 2-13Spezialisierte Eingabekomponenten . . . 2-15Schaltflchen und hnliche
Steuerelemente . . . . . . . . . . . . . . 2-17Mit Listen arbeiten . . . . . . . . . . . . . 2-19Komponenten gruppieren . . . . . . . . . 2-21Visuelle Rckmeldungen . . . . . . . . . 2-23Gitterkomponenten. . . . . . . . . . . . . 2-24Grafikkomponenten . . . . . . . . . . . . 2-25Windows-Standarddialogfelder . . . . . . 2-26
Eigenschaften von Komponenten festlegen .2-26Den Objektinspektor verwenden . . . . . 2-27Eigenschaften zur Laufzeit festlegen . . . 2-27
Methoden aufrufen. . . . . . . . . . . . . . . 2-28
Mit Ereignissen und Ereignisbehandlungsroutinen arbeiten . . 2-28
Eine neue Ereignisbehandlungsroutine erstellen . . . . . . . . . . . . . . . . . . 2-28
Eine Behandlungsroutine fr das Standardereignis einer Komponente erstellen . . . . . . . . . . . . . . . . . . 2-29
Ereignisbehandlungsroutinen suchen . . 2-29Ereignissen eine vorhandene
Behandlungsroutine zuordnen . . . . . 2-29Menereignissen eine Behandlungsroutine
zuordnen . . . . . . . . . . . . . . . . . 2-30Ereignisbehandlungsroutinen lschen . 2-31
Hilfsobjekte verwenden . . . . . . . . . . . . . 2-31Mit Listen arbeiten . . . . . . . . . . . . . . 2-32Mit Stringlisten arbeiten . . . . . . . . . . . 2-32
Stringlisten laden und speichern. . . . . 2-33Eine neue Stringliste erstellen . . . . . . 2-33Mit den Strings in einer Liste arbeiten. . 2-35Einer Stringliste Objekte zuordnen . . . 2-37
Mit Registrierung und INI-Dateien arbeiten 2-38Streams verwenden . . . . . . . . . . . . . . 2-38
Datenmodule und Remote-Datenmodule verwenden . . . . . . . . . . . . . . . . . . . . 2-38
Datenmodule erstellen und bearbeiten . . . 2-39Business Rules in einem Datenmodul
erstellen . . . . . . . . . . . . . . . . . . 2-39In einem Formular auf ein Datenmodul
zugreifen . . . . . . . . . . . . . . . . . . . 2-40Ein Remote-Datenmodul einem
Anwendungsserver hinzufgen . . . . . . 2-40Die Objektablage verwenden . . . . . . . . . . 2-40
Elemente in einem Projekt gemeinsam verwenden . . . . . . . . . . . . . . . . . . 2-41
Elemente in die Objektablage aufnehmen . 2-41Objekte in einer Team-Umgebung gemeinsam
verwenden . . . . . . . . . . . . . . . . . . 2-41Ein Element der Objektablage in einem
Projekt verwenden . . . . . . . . . . . . . 2-42Ein Objekt kopieren . . . . . . . . . . . . 2-42Ein Objekt vererben . . . . . . . . . . . . 2-42Ein Objekt verwenden. . . . . . . . . . . 2-42
Projektvorlagen verwenden . . . . . . . . . 2-42Freigegebene Objekte ndern . . . . . . . . 2-43Ein Standardelement fr neue Projekte,
Formulare und Hauptformulare angeben 2-43
Inhalt
ii
Benutzerdefinierte Komponenten der IDE hinzufgen . . . . . . . . . . . . . . . . . . . . 2-44
Kapitel 3Typische Programmieraufgaben 3-1Exception-Behandlung . . . . . . . . . . . . . . 3-1
Quelltextblcke schtzen . . . . . . . . . . . 3-2Auf Exceptions reagieren . . . . . . . . . 3-2Exceptions und die Ablaufsteuerung. . . 3-3Exception-Reaktionen verschachteln . . . 3-3
Ressourcenzuweisungen schtzen . . . . . . 3-4Zu schtzende Ressourcen. . . . . . . . . 3-4Ressourcen-Schutzblcke erstellen . . . . 3-5
RTL-Exceptions behandeln . . . . . . . . . . 3-6RTL-Exceptions . . . . . . . . . . . . . . . 3-6Exception-Behandlungsroutine erstellen. 3-7Exception-Behandlungsanweisungen . . 3-8Exception-Instanz verwenden. . . . . . . 3-9Gltigkeitsbereich von Exception-
Behandlungsroutinen. . . . . . . . . . . 3-10Standard-Exception-Behandlungsroutinen
bereitstellen . . . . . . . . . . . . . . . . 3-10Exception-Klassen verarbeiten . . . . . . 3-11Exception erneut auslsen . . . . . . . . . 3-11
Komponenten-Exceptions behandeln . . . . 3-12TApplication.HandleException verwenden .3-13Stille Exceptions . . . . . . . . . . . . . . . . 3-13Exceptions definieren . . . . . . . . . . . . . 3-14
Exception-Objekttyp deklarieren . . . . . 3-14Exception auslsen . . . . . . . . . . . . . 3-15
Schnittstellen verwenden . . . . . . . . . . . . . 3-15Schnittstellen als Sprachmerkmal . . . . . . 3-16
Schnittstellen in mehreren Klassen nutzen . . . . . . . . . . . . . . . . . . . 3-16
Schnittstellen mit Prozeduren verwenden . . . . . . . . . . . . . . . . . 3-18
IUnknown implementieren . . . . . . . . . . 3-18TInterfacedObject . . . . . . . . . . . . . . . 3-19Operator as verwenden . . . . . . . . . . . . 3-19Wiederverwendung von Quelltext und
Delegation . . . . . . . . . . . . . . . . . . . 3-20implements fr die Delegation
verwenden . . . . . . . . . . . . . . . . . 3-20Aggregation . . . . . . . . . . . . . . . . . 3-22
Speicherverwaltung fr Schnittstellen-objekte . . . . . . . . . . . . . . . . . . . . . 3-22
Referenzzhlung einsetzen . . . . . . . . 3-23Keine Referenzzhlung einsetzen . . . . . 3-24
Schnittstellen in verteilten Anwendungen einsetzen . . . . . . . . . . . . . . . . . . . 3-24
Mit Strings arbeiten. . . . . . . . . . . . . . . . 3-25Zeichentypen . . . . . . . . . . . . . . . . . 3-25String-Typen . . . . . . . . . . . . . . . . . . 3-26
Kurze Strings . . . . . . . . . . . . . . . . 3-26Lange Strings . . . . . . . . . . . . . . . . 3-27WideString . . . . . . . . . . . . . . . . . 3-28PChar-Typen . . . . . . . . . . . . . . . . 3-28OpenString . . . . . . . . . . . . . . . . . 3-28
Routinen der Laufzeitbibliothek zur String-Verarbeitung . . . . . . . . . . . . . . . . . 3-29
Wide-Zeichenroutinen. . . . . . . . . . . 3-29Gebruchliche Routinen fr lange
Strings . . . . . . . . . . . . . . . . . . . 3-30Strings deklarieren und initialisieren . . . . 3-32String-Typen mischen und konvertieren . . 3-33Konvertierungen von String in PChar . . . 3-33
String-Abhngigkeiten . . . . . . . . . . 3-34Lokale PChar-Variable zurckgeben. . . 3-34Lokale Variable als PChar bergeben . . 3-34
Compiler-Direktiven fr Strings . . . . . . . 3-35Strings und Zeichen: Verwandte Themen . 3-36
Mit Dateien arbeiten . . . . . . . . . . . . . . . 3-36Dateien bearbeiten . . . . . . . . . . . . . . 3-37
Datei lschen . . . . . . . . . . . . . . . . 3-37Datei suchen . . . . . . . . . . . . . . . . 3-37Dateiattribute ndern . . . . . . . . . . . 3-39Datei umbenennen. . . . . . . . . . . . . 3-39Datums-/Zeit-Routinen. . . . . . . . . . 3-40Datei kopieren . . . . . . . . . . . . . . . 3-40
Dateitypen mit Datei-E/A . . . . . . . . . . 3-40Datei-Streams verwenden . . . . . . . . . . 3-41
Dateien erstellen und ffnen . . . . . . . 3-42Datei-Handle verwenden . . . . . . . . . 3-42Dateien lesen und schreiben . . . . . . . 3-43Strings lesen und schreiben. . . . . . . . 3-43Datei durchsuchen. . . . . . . . . . . . . 3-44Dateiposition und -gre . . . . . . . . . 3-44Kopieren . . . . . . . . . . . . . . . . . . 3-45
Neue Datentypen definieren. . . . . . . . . . . 3-45
Kapitel 4Anwendungen, Komponenten und Bibliotheken erstellen 4-1
Anwendungen erstellen . . . . . . . . . . . . . . 4-1Windows-Anwendungen. . . . . . . . . . . . 4-1
Benutzeroberflchen. . . . . . . . . . . . . 4-2
iii
IDE-, Projekt- und Compiler-Optionen festlegen . . . . . . . . . . . . . . . . . . 4-3
Quelltextvorlagen . . . . . . . . . . . . . . . 4-3Konsolenanwendungen . . . . . . . . . . . . 4-3Service-Anwendungen . . . . . . . . . . . . 4-4
Service-Threads . . . . . . . . . . . . . . . 4-6Service-Namenseigenschaften. . . . . . . 4-8Services testen. . . . . . . . . . . . . . . . 4-8
Packages und DLLs erstellen . . . . . . . . . . . 4-9Unterschiede zwischen Packages und DLLs 4-9
Datenbankanwendungen erstellen. . . . . . . . 4-9Verteilte Anwendungen erstellen . . . . . . . . 4-10
Verteilte TCP/IP-Anwendungen erstellen. . 4-10Sockets in Anwendungen verwenden . . 4-11Web-Server-Anwendungen erstellen . . . 4-11
Verteilte Anwendungen mit COM und DCOM erstellen. . . . . . . . . . . . . . . . 4-12
COM und DCOM. . . . . . . . . . . . . . 4-12MTS . . . . . . . . . . . . . . . . . . . . . 4-12
Verteilte CORBA-Anwendungen erstellen . 4-12Verteilte Datenbankanwendungen erstellen.4-13
Kapitel 5Die Benutzeroberflche erstellen 5-1Die Klassen TApplication, TScreen und TForm 5-1
Das Hauptformular . . . . . . . . . . . . . . 5-1Weitere Formulare hinzufgen . . . . . . . . 5-2
Formulare verknpfen . . . . . . . . . . . 5-2Auf Anwendungsebene arbeiten . . . . . . . 5-3Mit dem Bildschirm arbeiten . . . . . . . . . 5-3Das Layout festlegen . . . . . . . . . . . . . . 5-3
Mit Botschaften arbeiten . . . . . . . . . . . . . 5-5Weitere Informationen zu Formularen . . . . . 5-5
Die Formularerstellung im Speicher steuern 5-5Automatisch erstellte Formulare anzeigen 5-6Formulare dynamisch erstellen . . . . . . 5-6Nichtmodale Formulare erstellen . . . . . 5-7Formularinstanzen mit lokalen Variablen
erstellen . . . . . . . . . . . . . . . . . . 5-7Zustzliche Argumente an Formulare
bergeben . . . . . . . . . . . . . . . . . . . 5-8Daten aus Formularen abrufen . . . . . . . . 5-9
Daten aus nichtmodalen Formularen abrufen . . . . . . . . . . . . . . . . . . . 5-9
Daten aus modalen Formularen abrufen.5-10Komponenten und Komponentengruppen wieder
verwenden . . . . . . . . . . . . . . . . . . . . 5-12Komponentenvorlagen . . . . . . . . . . . . . . 5-12Frames. . . . . . . . . . . . . . . . . . . . . . . . 5-13
Frames erstellen . . . . . . . . . . . . . . . . 5-14Frames in die Komponentenpalette
einfgen . . . . . . . . . . . . . . . . . . 5-14Frames verwenden und ndern . . . . . . . 5-14Frames freigeben . . . . . . . . . . . . . . . 5-16
Mens erstellen und verwalten . . . . . . . . . 5-16Den Men-Designer ffnen . . . . . . . . . 5-17Mens entwerfen . . . . . . . . . . . . . . . 5-18
Mens benennen. . . . . . . . . . . . . . 5-19Meneintrge benennen . . . . . . . . . 5-19Meneintrge hinzufgen, einfgen und
entfernen . . . . . . . . . . . . . . . . . 5-20Untermens erstellen . . . . . . . . . . . 5-21Das Men anzeigen . . . . . . . . . . . . 5-23
Meneintrge im Objektinspektor bearbeiten . . . . . . . . . . . . . . . . . . 5-24
Das lokale Men des Men-Designers verwenden . . . . . . . . . . . . . . . . . . 5-24
Die Befehle des lokalen Mens . . . . . . 5-25Zur Entwurfszeit zwischen Mens
wechseln . . . . . . . . . . . . . . . . . 5-25Menvorlagen verwenden . . . . . . . . . . 5-26Ein Men als Vorlage speichern . . . . . . . 5-27
Namenskonventionen fr Meneintrge und Ereignisbehandlungsroutinen in Vorlagen. . . . . . . . . . . . . . . . . . 5-28
Meneintrge zur Laufzeit bearbeiten . . . 5-29Mens kombinieren . . . . . . . . . . . . . . 5-29
Das aktive Men festlegen: die Eigenschaft Menu . . . . . . . . . . . . . . . . . . . 5-29
Die Reihenfolge der kombinierten Meneintrge festlegen: die Eigenschaft GroupIndex . . . . . . . . . . . . . . . . 5-29
Ressourcen-Dateien importieren. . . . . . . 5-30ToolBar- und CoolBar-Komponenten erstellen 5-31
Eine Panel-Komponente als Symbolleiste hinzufgen . . . . . . . . . . . . . . . . . . 5-32
Einer Symbolleiste (TPanel) eine SpeedButton-Komponente hinzufgen 5-32
Einer SpeedButton-Komponente eine Grafik zuweisen . . . . . . . . . . . . . . . . . 5-33
Die Anfangseinstellungen einer SpeedButton-Komponente festlegen. . 5-33
Eine Gruppe von SpeedButton-Komponenten erstellen . . . . . . . . . 5-33
Eine SpeedButton-Komponente als Ein-/Ausschalter verwenden . . . . . . . . . 5-34
Eine ToolBar-Komponente als Symbolleiste hinzufgen . . . . . . . . . . . . . . . . . . 5-34
iv
Einer Symbolleiste (TToolBar) eine ToolButton-Komponente hinzufgen. . 5-35
Einer ToolButton-Komponente eine Grafik zuweisen . . . . . . . . . . . . . . . . . . 5-35
Die Anfangseinstellungen einer ToolButton-Komponente festlegen . . . . . . . . . . 5-35
Eine Gruppe von ToolButton-Komponenten erstellen . . . . . . . . . . . . . . . . . . 5-36
Eine ToolButton-Komponente als Ein-/Ausschalter verwenden . . . . . . . . . 5-36
Eine CoolBar-Komponente hinzufgen . . . 5-36Die Anfangseinstellungen einer CoolBar-
Komponente festlegen . . . . . . . . . . 5-37Auf Mausklicks reagieren . . . . . . . . . . . 5-37
Einer ToolButton-Komponente ein Men zuweisen . . . . . . . . . . . . . . . . . . 5-38
Verborgene Symbolleisten hinzufgen. . . . 5-38Symbolleisten ein- und ausblenden . . . . . 5-38
Aktionslisten verwenden . . . . . . . . . . . . . 5-39Aktionsobjekte . . . . . . . . . . . . . . . . . 5-39Aktionen verwenden. . . . . . . . . . . . . . 5-40
Quelltext zentral verwalten . . . . . . . . 5-41Eigenschaften verknpfen . . . . . . . . . 5-41Aktionen ausfhren . . . . . . . . . . . . 5-41Aktionen aktualisieren . . . . . . . . . . . 5-43
Vordefinierte Aktionsklassen . . . . . . . . . 5-43Standard-Bearbeitungsaktionen. . . . . . 5-44Windows-Standardaktionen . . . . . . . . 5-44Datenmengenaktionen . . . . . . . . . . . 5-44
Aktionskomponenten erstellen . . . . . . . . 5-45Wie Aktionen ihre Zielobjekte
lokalisieren. . . . . . . . . . . . . . . . . 5-45Aktionen registrieren . . . . . . . . . . . . 5-47Einen Aktionslisten-Editor erstellen . . . 5-47
Beispielprogramme . . . . . . . . . . . . . . 5-47
Kapitel 6Mit Steuerelementen arbeiten 6-1Drag&Drop-Operationen in Steuerelementen
implementieren. . . . . . . . . . . . . . . . . . 6-1Eine Drag-Operation beginnen . . . . . . . . 6-1Gezogene Elemente akzeptieren . . . . . . . 6-2Elemente ablegen. . . . . . . . . . . . . . . . 6-3Eine Drag-Operation beenden . . . . . . . . 6-3Drag&Drop-Operationen durch ein Drag-
Objekt anpassen . . . . . . . . . . . . . . . 6-3Den Drag-Mauszeiger ndern . . . . . . . . 6-4
Drag&Dock in Steuerelementen implementieren6-4
Ein fensterorientiertes Steuerelement als Ziel einer Andock-Operation definieren . . . . . 6-5
Ein Steuerelement als andockbares Steuerelement definieren . . . . . . . . . . . 6-5
Andock-Operationen von Steuerelementen steuern . . . . . . . . . . . . . . . . . . . . . 6-6
Steuerelemente vom Ziel einer Andock-Operation trennen . . . . . . . . . . . . . . . 6-6
Die Behandlung von Drag&Dock-Operationen durch Steuerelemente festlegen . . . . . . . 6-7
Text in Steuerelementen bearbeiten . . . . . . . . 6-7Die Textausrichtung festlegen . . . . . . . . . 6-8Bildlaufleisten zur Laufzeit hinzufgen . . . 6-8Das Clipboard-Objekt hinzufgen . . . . . . 6-9Text markieren . . . . . . . . . . . . . . . . . . 6-9Den gesamten Text markieren . . . . . . . . 6-10Text ausschneiden, kopieren und einfgen. 6-10Markierten Text lschen . . . . . . . . . . . 6-11Meneintrge deaktivieren. . . . . . . . . . 6-11Ein Popup-Men bereitstellen . . . . . . . . 6-12Das Ereignis OnPopup . . . . . . . . . . . . 6-12
Grafiken zu Steuerelementen hinzufgen . . . 6-13Den Owner-Draw-Stil festlegen . . . . . . . 6-13Grafikobjekte zu einer Stringliste
hinzufgen . . . . . . . . . . . . . . . . . . 6-14Grafiken zu einer Anwendung
hinzufgen . . . . . . . . . . . . . . . . 6-14Grafiken zu einer Stringliste hinzufgen 6-14Owner-Draw-Elemente anzeigen . . . . 6-15
Gre von Owner-Draw-Elementen festlegen . . . . . . . . . . . . . . . . . . . 6-15
Alle Owner-Draw-Elemente anzeigen . . . 6-16
Kapitel 7Mit Grafiken und Multimedia arbeiten 7-1Grafikprogrammierung im berblick . . . . . . 7-1
Den Bildschirm aktualisieren . . . . . . . . . 7-2Grafikobjekt-Typen . . . . . . . . . . . . . . . 7-3Hufig verwendete Eigenschaften und
Methoden des Objekts Canvas . . . . . . . . 7-4Eigenschaften des Objekts Canvas
verwenden . . . . . . . . . . . . . . . . . . . 7-5Stifte verwenden . . . . . . . . . . . . . . . 7-5Pinsel verwenden . . . . . . . . . . . . . . 7-8Pixel lesen und setzen . . . . . . . . . . . 7-10
Grafikobjekte zeichnen . . . . . . . . . . . . 7-10Linien und Linienzge zeichnen . . . . . 7-10Formen zeichnen. . . . . . . . . . . . . . 7-11
v
Behandlung mehrerer Zeichenobjekte in einer Anwendung . . . . . . . . . . . . . . . . . . 7-13
Bentigte Zeichenwerkzeuge ermitteln . 7-13Werkzeuge mit Hilfe von
Mauspalettenschaltern wechseln . . . . 7-14Zeichenwerkzeuge verwenden . . . . . . 7-15
In einer Grafik zeichnen . . . . . . . . . . . . 7-18Bildlauffhige Grafiken . . . . . . . . . . 7-18Bild-Steuerelemente hinzufgen . . . . . 7-18
Grafikdateien laden und speichern. . . . . . 7-20Bilder aus Dateien laden . . . . . . . . . . 7-21Bilder in Dateien speichern . . . . . . . . 7-21Bilder ersetzen . . . . . . . . . . . . . . . 7-22
Die Zwischenablage und Grafiken . . . . . . 7-23Grafiken in die Zwischenablage
kopieren . . . . . . . . . . . . . . . . . . 7-23Grafiken in die Zwischenablage
ausschneiden . . . . . . . . . . . . . . . 7-23Grafiken aus der Zwischenablage
einfgen . . . . . . . . . . . . . . . . . . 7-24Der Gummiband-Effekt: Beispiel . . . . . . . 7-24
Auf Mausaktionen reagieren . . . . . . . 7-25Felder einem Formularobjekt
hinzufgen. . . . . . . . . . . . . . . . . 7-28Verbesserte Liniendarstellung . . . . . . . 7-29
Mit Multimedia arbeiten . . . . . . . . . . . . . 7-31Einer Anwendung Videoclips ohne Ton
hinzufgen . . . . . . . . . . . . . . . . . . 7-31Beispiel fr das Hinzufgen von Videoclips
ohne Ton . . . . . . . . . . . . . . . . . . 7-32Einer Anwendung Audio- und/oder Videoclips
hinzufgen . . . . . . . . . . . . . . . . . . 7-33Beispiel fr das Hinzufgen von Audio-
und/oder Videoclips . . . . . . . . . . . 7-35
Kapitel 8Multithread-Anwendungen entwickeln8-1
Thread-Objekte definieren . . . . . . . . . . . . 8-2Den Thread initialisieren . . . . . . . . . . . 8-3
Eine Standard-Prioritt zuweisen . . . . . 8-3Den Freigabezeitpunkt von Threads
festlegen . . . . . . . . . . . . . . . . . . 8-3Die Thread-Funktion schreiben . . . . . . . . 8-4
Der VCL-Haupt-Thread . . . . . . . . . . 8-4Lokale Thread-Variablen verwenden . . . 8-5Die Beendigung mit anderen Threads
prfen . . . . . . . . . . . . . . . . . . . 8-6Clean-up-Quelltext schreiben . . . . . . . . . 8-6
Threads koordinieren. . . . . . . . . . . . . . . . 8-7Gleichzeitigen Zugriff vermeiden . . . . . . . 8-7
Objekte sperren . . . . . . . . . . . . . . . 8-7Kritische Abschnitte . . . . . . . . . . . . . 8-7TMultiReadExclusiveWriteSynchronizer-
Objekte . . . . . . . . . . . . . . . . . . . 8-8Weitere Techniken fr die gemeinsame
Nutzung von Speicher. . . . . . . . . . . 8-9Die Ausfhrung anderer Threads abwarten . 8-9
Warten, bis ein Thread vollstndig ausgefhrt ist . . . . . . . . . . . . . . . . 8-9
Warten, bis eine Aufgabe ausgefhrt ist. 8-10Thread-Objekte ausfhren . . . . . . . . . . . . 8-11
Die Standard-Prioritt berschreiben . . . . 8-11Threads starten und stoppen. . . . . . . . . 8-12
Threads in verteilten Anwendungen . . . . . . 8-12Threads und botschaftsbasierte Server . . . 8-13Threads und verteilte Objekte . . . . . . . . 8-13
Anwendungen (EXE-Dateien) schreiben 8-13Bibliotheken schreiben . . . . . . . . . . 8-14
Fehlersuche in Multithread-Anwendungen . . 8-15
Kapitel 9Packages und Komponenten 9-1Packages sinnvoll einsetzen . . . . . . . . . . . . 9-2
Packages und Standard-DLLs . . . . . . . . . 9-2Laufzeit-Packages. . . . . . . . . . . . . . . . . . 9-3
Laufzeit-Packages in Anwendungen . . . . . 9-3Packages dynamisch laden . . . . . . . . . . . 9-4Bentigte Laufzeit-Packages auswhlen . . . 9-4Benutzerdefinierte Packages . . . . . . . . . . 9-5
Entwurfszeit-Packages . . . . . . . . . . . . . . . 9-6Komponenten-Packages installieren . . . . . 9-6
Packages erstellen und bearbeiten . . . . . . . . 9-8Ein Package erstellen . . . . . . . . . . . . . . 9-8Ein bestehendes Package bearbeiten . . . . . 9-9Quelldateien von Packages manuell
bearbeiten . . . . . . . . . . . . . . . . . . . 9-9Die Struktur eines Package . . . . . . . . . . 9-10
Packages benennen . . . . . . . . . . . . 9-10Die requires-Klausel . . . . . . . . . . . . 9-10Die contains-Klausel. . . . . . . . . . . . 9-11
Packages compilieren . . . . . . . . . . . . . 9-11Spezielle Compiler-Direktiven fr
Packages . . . . . . . . . . . . . . . . . 9-12Der Befehlszeilen-Compiler und -Linker 9-14Package-Dateien nach erfolgreicher
Compilierung. . . . . . . . . . . . . . . 9-14Packages weitergeben . . . . . . . . . . . . . . 9-15
vi
Anwendungen mit Packages weitergeben . 9-15Packages anderen Entwicklern zur Verfgung
stellen . . . . . . . . . . . . . . . . . . . . . 9-15Package-Sammlungen . . . . . . . . . . . . . 9-15
Kapitel 10Anwendungen fr den internationalen Markt10-1
Internationalisierung und Lokalisierung . . . . 10-1Internationalisierung. . . . . . . . . . . . . . 10-1Lokalisierung . . . . . . . . . . . . . . . . . . 10-2
Internationalisieren von Anwendungen . . . . 10-2Quelltext anpassen . . . . . . . . . . . . . . . 10-2
Zeichenstze. . . . . . . . . . . . . . . . . 10-2OEM- und ANSI- Zeichensatz. . . . . . . 10-2Doppelbyte-Zeichenstze . . . . . . . . . 10-216-Bit-Zeichen . . . . . . . . . . . . . . . . 10-3Bidirektionale Sprachen . . . . . . . . . . 10-4Die Eigenschaft BiDiMode. . . . . . . . . 10-6Funktionen fr bestimmte
Gebietsschemas . . . . . . . . . . . . . . 10-8Die Benutzeroberflche gestalten. . . . . . . 10-9
Text . . . . . . . . . . . . . . . . . . . . . . 10-9Grafiken . . . . . . . . . . . . . . . . . . . 10-9Formate und Sortierreihenfolge . . . . . 10-10Tastenzuordnungen . . . . . . . . . . . 10-10
Ressourcen auslagern . . . . . . . . . . . . 10-10Ressourcen-DLLs erstellen . . . . . . . . . 10-10Ressourcen-DLLs verwenden . . . . . . . . 10-12Ressourcen-DLLs dynamisch wechseln . . 10-13
Anwendungen lokalisieren . . . . . . . . . . . 10-13Ressourcen lokalisieren . . . . . . . . . . . 10-13
Kapitel 11Anwendungen weitergeben 11-1Allgemeine Anwendungen weitergeben . . . . 11-1
Installationsprogramme verwenden . . . . . 11-2Anwendungsdateien identifizieren . . . . 11-2Anwendungsdateien nach Namens-
erweiterung . . . . . . . . . . . . . . . . 11-3Package-Dateien . . . . . . . . . . . . . . 11-3ActiveX-Steuerelemente . . . . . . . . . . 11-3Hilfsanwendungen . . . . . . . . . . . . . 11-4Position von DLL-Dateien . . . . . . . . . 11-4
Datenbankanwendungen weitergeben . . . . . 11-4Die Datenbank-Engine bereitstellen . . . . . 11-5
Borland Database Engine . . . . . . . . . 11-5Datenbank-Engines von Fremd-
herstellern . . . . . . . . . . . . . . . . . 11-6
SQL Links. . . . . . . . . . . . . . . . . . 11-6MIDAS (Multi-tiered Distributed Application
Services) . . . . . . . . . . . . . . . . . . . 11-7Web-Anwendungen weitergeben . . . . . . . . 11-8Unterschiedliche Host-Umgebungen
bercksichtigen . . . . . . . . . . . . . . . . . 11-8Bildschirmauflsung und Farbtiefe . . . . . 11-9
Anwendungen ohne dynamische Grenanpassung . . . . . . . . . . . . 11-9
Anwendungen mit dynamischer Grenanpassung der Formulare und Steuerelemente . . . . . . . . . . . . . . 11-9
Unterschiedliche Farbtiefen . . . . . . . 11-11Schriften . . . . . . . . . . . . . . . . . . . . 11-11Windows-Version . . . . . . . . . . . . . . .11-12
Software-Lizenzvereinbarungen . . . . . . . .11-12DEPLOY.TXT . . . . . . . . . . . . . . . . .11-13README.TXT . . . . . . . . . . . . . . . . .11-13Lizenzvereinbarungen . . . . . . . . . . . .11-13Dokumentation zu Produkten von
Fremdherstellern . . . . . . . . . . . . . .11-13
Teil IIDatenbankanwendungen entwickeln
Kapitel 12Datenbankanwendungen entwerfen 12-1Datenbanken . . . . . . . . . . . . . . . . . . . 12-1
Datenbanktypen . . . . . . . . . . . . . . . . 12-2Lokale Datenbanken. . . . . . . . . . . . 12-2Remote-Datenbankserver . . . . . . . . . 12-3
Datenbanksicherheit . . . . . . . . . . . . . 12-3Transaktionen . . . . . . . . . . . . . . . . . 12-4Das Daten-Dictionary . . . . . . . . . . . . . 12-5Referentielle Integritt, Stored Procedures und
Trigger . . . . . . . . . . . . . . . . . . . . 12-6Datenbankarchitektur . . . . . . . . . . . . . . 12-6
Skalierbarkeit planen . . . . . . . . . . . . . 12-7Einschichtige Datenbankanwendungen . . 12-9Zweischichtige Datenbankanwendungen . 12-9Mehrschichtige Datenbankanwendungen 12-10
Benutzeroberflchen entwickeln . . . . . . . 12-12Einzelne Datenstze anzeigen . . . . . . . 12-12Mehrere Datenstze anzeigen . . . . . . . 12-13Daten analysieren . . . . . . . . . . . . . . 12-14Anzeige der Daten festlegen . . . . . . . . 12-14Berichte erstellen . . . . . . . . . . . . . . 12-17
vii
Kapitel 13Ein- und zweischichtige Anwendunen erstellen 13-1
BDE-Anwendungen . . . . . . . . . . . . . . . . 13-2BDE-Architektur . . . . . . . . . . . . . . . . 13-2
Grundlagen von Datenbanken und Datenmengen . . . . . . . . . . . . . . . 13-3
Sitzungen verwenden . . . . . . . . . . . 13-4Verbindung mit Datenbanken. . . . . . . . . 13-5Transaktionen . . . . . . . . . . . . . . . . . . 13-5
Transaktionen explizit steuern . . . . . . 13-6Datenbank-Komponenten fr Transaktionen
verwenden . . . . . . . . . . . . . . . . . 13-6Die Eigenschaft TransIsolation . . . . . . 13-7Passthrough-SQL . . . . . . . . . . . . . . 13-9Lokale Transaktionen. . . . . . . . . . . . 13-9
Aktualisierungen zwischenspeichern . . . 13-10Datenbanktabellen erstellen und
umstrukturieren . . . . . . . . . . . . . . 13-11ADO-basierte Anwendungen . . . . . . . . . 13-11
ADO-basierte Architektur . . . . . . . . . . 13-12Grundlagen zu ADO-Datenbanken und -
Datenmengen . . . . . . . . . . . . . . 13-12Verbindung zu ADO-Datenbanken
herstellen . . . . . . . . . . . . . . . . . . 13-13Daten abrufen. . . . . . . . . . . . . . . . . 13-13ADO-Datenbanktabellen erstellen und
umstrukturieren . . . . . . . . . . . . . . 13-14Datenbankanwendungen mit unstrukturierten
Daten . . . . . . . . . . . . . . . . . . . . . . 13-15Datenmengen erstellen . . . . . . . . . . . 13-15
Neue Datenmengen mit persistenten Feldern erstellen. . . . . . . . . . . . . 13-16
Datenmengen mit Feld- und Indexdefinitionen erstellen . . . . . . 13-16
Datenmengen auf Grundlage bestehender Tabellen erstellen . . . . . . . . . . . . 13-17
Daten laden und speichern . . . . . . . . . 13-18Das Aktenkoffer-Modell . . . . . . . . . . . 13-19
Skalierung auf eine dreischichtige Anwendung . . . . . . . . . . . . . . . . . . 13-20
Kapitel 14Mehrschichtige Anwendungen erstellen14-1
Vorteile des mehrschichtigen Datenbank-modells . . . . . . . . . . . . . . . . . . . . . . 14-2
Grundlagen der MIDAS-Technologie . . . . . . 14-3
Struktur einer mehrschichtigen MIDAS-Anwendung . . . . . . . . . . . . . . . . . 14-3
Die Struktur der Client-Anwendung . . . . 14-4Die Struktur des Anwendungsservers . . . 14-5
MTS verwenden . . . . . . . . . . . . . . 14-6Remote-Datenmodule verwalten . . . . 14-8Schnittstelle IAppServer verwenden . . 14-8
Verbindungsprotokoll whlen . . . . . . . . 14-9DCOM-Verbindungen einsetzen . . . . . 14-9Socket-Verbindungen einsetzen . . . . 14-10Web-Verbindungen einsetzen. . . . . . .14-11OLEnterprise verwenden . . . . . . . . .14-11CORBA-Verbindungen einsetzen . . . 14-12
Mehrschichtige Anwendungen erstellen . . . 14-12Anwendungsserver erstellen . . . . . . . . . 14-13
Remote-Datenmodul einrichten . . . . . . 14-15TRemoteDataModule konfigurieren. . 14-15TMTSDataModule konfigurieren . . . 14-16TCorbaDataModule konfigurieren . . 14-17
Daten-Provider fr Anwendungsserver erstellen . . . . . . . . . . . . . . . . . . . 14-18
Schnittstelle des Anwendungsservers erweitern . . . . . . . . . . . . . . . . . . 14-19
Callbacks der Schnittstelle des Anwendungsservers hinzufgen . . 14-20
Schnittstelle des Anwendungsservers unter MTS erweitern. . . . . . . . . . 14-20
Client-Anwendung erstellen. . . . . . . . . . 14-20Verbindung zum Anwendungsserver
einrichten . . . . . . . . . . . . . . . . . . 14-21Verbindung ber DCOM angeben . . . 14-22Verbindung ber Sockets angeben . . . 14-23Verbindung ber HTTP angeben. . . . 14-24Verbindung ber OLEnterprise
angeben . . . . . . . . . . . . . . . . . 14-24Verbindung ber CORBA angeben . . 14-25Broker-Verbindungen . . . . . . . . . . 14-25
Server-Verbindungen verwalten . . . . . . 14-26Verbindung zum Server einrichten . . 14-26Server-Verbindung schlieen oder
ndern . . . . . . . . . . . . . . . . . . 14-27Serverschnittstellen aufrufen. . . . . . . . 14-27
Transaktionen in mehrschichtigen Anwendungen verwalten. . . . . . . . . . . . . . . . . . . . 14-28
Haupt/Detail-Beziehungen untersttzen . . 14-29Statusinformationen in Remote-Datenmodulen
untersttzen . . . . . . . . . . . . . . . . . . 14-30Web-basierte MIDAS-Anwendungen erstellen14-32
viii
Client-Anwendung als ActiveX-Steuerelement weitergeben . . . . . . . . . . . . . . . . . 14-33
ActiveX-Formular fr die Client-Anwendung erstellen. . . . . . . . . . 14-33
Web-Anwendungen mit InternetExpress erstellen . . . . . . . . . . . . . . . . . . . 14-34
InternetExpress-Anwendung erstellen . 14-35Javascript-Bibliotheken verwenden. . . 14-36Zugriffs- und Startberechtigung fr den
Anwendungsserver gewhren. . . . . 14-37XML-Broker verwenden . . . . . . . . . . . 14-37
XML-Datenpakete abrufen . . . . . . . 14-38Aktualisierung aus XML-
Datenpaketen eintragen . . . 14-39Web-Seiten mit einem MIDAS-Seitengenerator
erstellen . . . . . . . . . . . . . . . . . . . 14-40Web-Seiteneditor verwenden . . . . . . 14-41Eigenschaften von Web-Elementen
festlegen . . . . . . . . . . . . . . . . . 14-42Vorlage des MIDAS-Seitengenerators
anpassen . . . . . . . . . . . . . . . . . 14-43
Kapitel 15Provider-Komponenten 15-1Die Datenquelle festlegen . . . . . . . . . . . . . 15-1Aktualisierungen eintragen. . . . . . . . . . . . 15-2Datenpakete zusammenstellen . . . . . . . . . . 15-2
Felder fr Datenpakete festlegen . . . . . . . 15-3Optionen fr Datenpakete einstellen. . . . . 15-3Datenpaketen benutzerdefinierte Daten
hinzufgen . . . . . . . . . . . . . . . . . . 15-4Auf Datenanforderungen des Client reagieren .15-5Auf Aktualisierungsanforderungen des Client
reagieren . . . . . . . . . . . . . . . . . . . . . 15-6Delta-Pakete vor dem Aktualisieren der
Datenbank bearbeiten . . . . . . . . . . . . 15-7Die Art der Aktualisierung steuern . . . . . 15-8Bestimmte Aktualisierungen berwachen. . 15-9Aktualisierungsfehler beheben . . . . . . . 15-10Aktualisierungen in Datenmengen mit
mehreren Tabellen . . . . . . . . . . . . . 15-10Auf Client-Ereignisse reagieren . . . . . . . . 15-11Server-Beschrnkungen . . . . . . . . . . . . . 15-11
Kapitel 16Datenbanksitzungen 16-1Mit einer Sitzungskomponente arbeiten . . . . 16-2
Die Standardsitzung . . . . . . . . . . . . . . 16-2Zustzliche Sitzungen erzeugen . . . . . . . 16-3
Sitzungsnamen zuweisen. . . . . . . . . . . 16-4Eine Sitzung aktivieren . . . . . . . . . . . . 16-5Den Start der Sitzung anpassen . . . . . . . 16-6Das Standardverhalten von
Datenbankverbindungen festlegen . . . . 16-6Datenbankverbindungen erzeugen, ffnen und
schlieen . . . . . . . . . . . . . . . . . . . 16-7Eine einzelne Datenbankverbindung
schlieen . . . . . . . . . . . . . . . . . 16-7Alle Datenbankverbindungen schlieen 16-8
Temporre Datenbankverbindungen trennen . . . . . . . . . . . . . . . . . . . . 16-8
Nach einer Datenbankverbindung suchen . 16-9Informationen ber eine Sitzung abrufen . 16-9BDE-Aliase . . . . . . . . . . . . . . . . . . 16-10
Die Sichtbarkeit von Aliasen festlegen .16-11Sitzungs-Aliase fr andere Sitzungen und
Anwendungen sichtbar machen . . . .16-11Bekannte Aliase, Treiber und Parameter
festlegen. . . . . . . . . . . . . . . . . .16-11Aliase erzeugen, ndern und lschen . 16-12
Durch die Datenbank-Komponenten einer Sitzung iterieren . . . . . . . . . . . . . . 16-13
Paradox-Verzeichnisse angeben . . . . . . 16-14Das Verzeichnis der Steuerdatei
festlegen. . . . . . . . . . . . . . . . . 16-14Ein Verzeichnis fr temporre Dateien
festlegen. . . . . . . . . . . . . . . . . 16-14Kennwortgeschtzte Paradox- und dBase-
Tabellen . . . . . . . . . . . . . . . . . . . 16-15Die Methode AddPassword verwenden16-15Die Methoden RemovePassword und
RemoveAllPasswords verwenden . . 16-16Die Methode GetPassword und das
Ereignis OnPassword verwenden . . 16-16Mehrere Sitzungen verwalten . . . . . . . . . 16-17Sitzungskomponenten in Datenmodulen
verwenden . . . . . . . . . . . . . . . . . . . 16-19
Kapitel 17Datenbankverbindungen 17-1Persistente und temporre Datenbank-
Komponenten . . . . . . . . . . . . . . . . . . 17-1Temporre Datenbank-Komponenten. . . . 17-2Datenbank-Komponenten zur Entwurfszeit
erstellen . . . . . . . . . . . . . . . . . . . . 17-2Datenbank-Komponenten zur Laufzeit
erstellen . . . . . . . . . . . . . . . . . . . . 17-3Verbindungen steuern . . . . . . . . . . . . . . 17-4
ix
Eine Datenbank-Komponente mit einer Sitzung verbinden . . . . . . . . . . . . . . . . . . . 17-4
Einen BDE-Alias angeben . . . . . . . . . . . 17-4BDE-Aliasparameter festlegen . . . . . . . . 17-5Server-Login steuern . . . . . . . . . . . . . . 17-6Mit einem Datenbankserver verbinden . . . 17-7Besonderheiten beim Verbinden mit einem
Remote-Server . . . . . . . . . . . . . . . . 17-8Mit Netzwerkprotokollen arbeiten . . . . 17-8ODBC . . . . . . . . . . . . . . . . . . . . 17-8
Eine Verbindung zu einem Datenbankserver trennen. . . . . . . . . . . . . . . . . . . . . 17-9
Datenmengen ohne Trennen der Server-Verbindung schlieen . . . . . . . . . . . . 17-9
Durch die Datenmengen einer Datenbank-Komponente iterieren . . . . . . . . . . . . 17-9
Interaktionen zwischen Datenbank- und Sitzungs-komponenten . . . . . . . . . . . . . . . . . . 17-10
Datenbank-Komponenten in Datenmodulen . 17-10SQL-Anweisungen mit einer TDatabase-
Komponente ausfhren . . . . . . . . . . . . 17-10SQL-Anweisungen ohne Ergebnismengen
ausfhren . . . . . . . . . . . . . . . . . . 17-11SQL-Anweisungen mit Ergebnismengen
ausfhren . . . . . . . . . . . . . . . . . . 17-12SQL-Anweisungen mit Parametern
ausfhren . . . . . . . . . . . . . . . . . . 17-13
Kapitel 18Datenmengen 18-1Die Komponente TDataSet . . . . . . . . . . . . 18-2Arten von Datenmengen . . . . . . . . . . . . . 18-3Datenmengen ffnen und schlieen . . . . . . . 18-3Den Status von Datenmengen bestimmen und
einstellen . . . . . . . . . . . . . . . . . . . . . 18-4Eine Datenmenge deaktivieren . . . . . . . . 18-6Datenmengen durchsuchen . . . . . . . . . . 18-7Die Bearbeitung von Datenmengen
ermglichen . . . . . . . . . . . . . . . . . . 18-8Das Einfgen neuer Datenstze
ermglichen . . . . . . . . . . . . . . . . . . 18-9Auf Indizes basierende Suchvorgnge und
Bereiche in Tabellen . . . . . . . . . . . . 18-10Felder berechnen . . . . . . . . . . . . . . . 18-10Datenstze filtern. . . . . . . . . . . . . . . 18-11Datenstze aktualisieren. . . . . . . . . . . 18-11
Durch Datenmengen navigieren . . . . . . . . 18-11Die Methoden First und Last . . . . . . . . 18-12Die Methoden Next und Prior . . . . . . . 18-12
Die Methode MoveBy. . . . . . . . . . . . 18-13Die Eigenschaften EOF und BOF . . . . . 18-13
EOF . . . . . . . . . . . . . . . . . . . . 18-14BOF . . . . . . . . . . . . . . . . . . . . 18-15
Datenstze markieren und dorthin zurckkehren . . . . . . . . . . . . . . . 18-15
Datenmengen durchsuchen . . . . . . . . . . 18-17Die Methode Locate . . . . . . . . . . . . . 18-17Die Methode Lookup . . . . . . . . . . . . 18-18
Teilmengen von Daten mit Hilfe von Filtern anzeigen und bearbeiten . . . . . . . . . . . 18-19
Filter aktivieren und deaktivieren . . . . . 18-19Filter erzeugen . . . . . . . . . . . . . . . . 18-20Die Eigenschaft Filter festlegen . . . . . . 18-20Eine Behandlungsroutine fr das Ereignis
OnFilterRecord schreiben. . . . . . . . . 18-21Filterbehandlungsroutinen zur Laufzeit
wechseln . . . . . . . . . . . . . . . . 18-22Filteroptionen festlegen. . . . . . . . . . . 18-22Durch Datenstze einer gefilterten Datenmenge
navigieren . . . . . . . . . . . . . . . . . 18-23Daten bearbeiten . . . . . . . . . . . . . . . . 18-24
Datenstze bearbeiten. . . . . . . . . . . . 18-24Neue Datenstze hinzufgen . . . . . . . 18-25
Datenstze einfgen . . . . . . . . . . . 18-26Datenstze anhngen . . . . . . . . . . 18-26
Datenstze lschen . . . . . . . . . . . . . 18-27Daten in die Datenbank eintragen. . . . . 18-27nderungen rckgngig machen . . . . . 18-28Komplette Datenstze bearbeiten . . . . . 18-28
Ereignisse fr Datenmengen behandeln . . . 18-30Eine Methode abbrechen . . . . . . . . . . 18-30Das Ereignis OnCalcFields . . . . . . . . . 18-30
BDE-Datenmengen . . . . . . . . . . . . . . . 18-31BDE-Datenmengen im berblick . . . . . 18-32Datenbank- und Sitzungsverbindungen
verwalten . . . . . . . . . . . . . . . . . . 18-32Die Eigenschaften DatabaseName und
SessionName . . . . . . . . . . . . . . 18-33BDE-Handle-Eigenschaften. . . . . . . 18-34
Zwischengespeicherte Aktualisierungen . 18-34BLOBs zwischenspeichern . . . . . . . . . 18-35
Kapitel 19Felder 19-1Was sind Feldkomponenten? . . . . . . . . . . 19-2
Dynamische Feldkomponenten . . . . . . . 19-3Persistente Feldkomponenten . . . . . . . . 19-4
Persistente Felder erstellen. . . . . . . . . . . . 19-6
x
Persistente Felder anordnen . . . . . . . . . . . 19-7Neue persistente Felder erstellen . . . . . . . . 19-7
Datenfelder definieren . . . . . . . . . . . . . 19-8Berechnete Felder definieren . . . . . . . . . 19-9Berechnete Felder programmieren . . . . . 19-10Lookup-Felder definieren . . . . . . . . . . 19-11Aggregatfelder definieren . . . . . . . . . . 19-13Persistente Feldkomponenten lschen . . . 19-13
Eigenschaften und Ereignisse persistenter Felder . . . . . . . . . . . . . . . . . . . . . . 19-14
Anzeige- und Bearbeitungseigenschaften zur Entwurfszeit festlegen . . . . . . . . . . . 19-14
Die Eigenschaften von Feldkomponenten zur Laufzeit festlegen . . . . . . . . . . . . . . 19-16
Attributstze fr Feldkomponenten erstellen . . . . . . . . . . . . . . . . . . . 19-16
Attributstze mit Feldkomponenten verbinden . . . . . . . . . . . . . . . . . . 19-17
Attributsatz-Zuordnungen lschen . . . . 19-17Benutzereingaben steuern . . . . . . . . . . 19-18Standardformate fr numerische, Datums- und
Zeitfelder . . . . . . . . . . . . . . . . . . 19-18Ereignisse verarbeiten . . . . . . . . . . . . 19-19
Zur Laufzeit mit Feldkomponentenmethoden arbeiten . . . . . . . . . . . . . . . . . . . . . 19-20
Feldwerte anzeigen, konvertieren und abrufen . . . . . . . . . . . . . . . . . . . . . 19-20
Werte in Standard-Steuerelementen anzeigen . . . . . . . . . . . . . . . . . . . 19-21
Feldwerte konvertieren . . . . . . . . . . . 19-21Mit der Standard-Datenmengeneigenschaft
auf Werte zugreifen. . . . . . . . . . . . . 19-22Mit der Datenmengeneigenschaft Fields auf
Werte zugreifen . . . . . . . . . . . . . . . 19-23Mit der Datenmengenmethode FieldByName
auf Werte zugreifen. . . . . . . . . . . . . 19-23Den aktuellen Wert eines Feldes berprfen . 19-24Einen Standardwert fr ein Feld festlegen . . 19-24Datenbeschrnkungen. . . . . . . . . . . . . . 19-24
Selbstdefinierte Beschrnkungen . . . . . . 19-24Server-Beschrnkungen . . . . . . . . . . . 19-25
Objektfelder . . . . . . . . . . . . . . . . . . . 19-26ADT- und Array-Felder anzeigen . . . . . 19-27ADT-Felder . . . . . . . . . . . . . . . . . . 19-27
Auf Werte von ADT-Feldern zugreifen. 19-27Array-Felder . . . . . . . . . . . . . . . . . 19-29
Auf Werte von Array-Feldern zugreifen 19-29Datenmengenfelder . . . . . . . . . . . . . 19-30
Datenmengenfelder anzeigen . . . . . . 19-30
Auf Daten in einer verschachtelten Datenmenge zugreifen . . . . . . . . 19-30
Referenzfelder . . . . . . . . . . . . . . . . 19-31Referenzfelder anzeigen. . . . . . . . . 19-31Auf Daten in einem Referenzfeld
zugreifen . . . . . . . . . . . . . . . . 19-31
Kapitel 20Tabellen 20-1Tabellenkomponenten . . . . . . . . . . . . . . 20-1Tabellenkomponenten erstellen . . . . . . . . . 20-2
Datenbankposition angeben . . . . . . . . . 20-2Tabellennamen festlegen . . . . . . . . . . . 20-3Tabellentypen fr lokale Tabellen festlegen 20-4Tabellen ffnen und schlieen . . . . . . . . 20-4
Zugriff auf Tabellen steuern . . . . . . . . . . . 20-5Datenstze suchen . . . . . . . . . . . . . . . . 20-6
Datenstze ber indizierte Felder suchen . 20-6Datenstze mit Goto-Methoden suchen . 20-7Datenstze mit Find-Methoden suchen . 20-8
Aktuellen Datensatz nach einer erfolgreichen Suche bestimmen . . . . . . . . . . . . . . 20-8
Datenstze ber Teilschlssel suchen . . . . 20-9Datenstze ber Sekundrindizes suchen . 20-9Suchoperationen wiederholen oder
erweitern . . . . . . . . . . . . . . . . . . . 20-9Datenstze sortieren . . . . . . . . . . . . . . 20-10
Verfgbare Indizes mit GetIndexNames abrufen . . . . . . . . . . . . . . . . . . . 20-10
Sekundrindizes in IndexName festlegen 20-10dBASE-Indexdateien angeben . . . . . .20-11
Sortierreihenfolge fr SQL-Tabellen. . . . .20-11Felder in IndexFieldNames angeben . .20-11
Feldlisten nach einem Index durchsuchen 20-12Mit Teilmengen der Daten arbeiten . . . . . . 20-12
Unterschiede zwischen Bereichen und Filtern . . . . . . . . . . . . . . . . . . . . 20-12
Bereiche erstellen und zuweisen. . . . . . 20-13Bereichsanfang festlegen . . . . . . . . 20-13Bereichsende festlegen . . . . . . . . . 20-14Bereichsanfang und -ende festlegen . . 20-15Bereiche mit Teilschlsseln festlegen . 20-15Datenstze ein- oder ausschlieen, die mit
Bereichsgrenzen bereinstimmen . . 20-16Bereiche zuweisen . . . . . . . . . . . . 20-16Bereiche entfernen . . . . . . . . . . . . 20-16
Bereiche ndern . . . . . . . . . . . . . . . 20-17Bereichsanfang ndern . . . . . . . . . 20-17Bereichsende ndern . . . . . . . . . . 20-17
xi
Alle Datenstze einer Tabelle lschen . . . . . 20-18Tabellen lschen . . . . . . . . . . . . . . . . . 20-18Tabellen umbenennen . . . . . . . . . . . . . . 20-18Tabellen erstellen. . . . . . . . . . . . . . . . . 20-19Daten aus einer anderen Tabelle importieren . 20-21TBatchMove verwenden . . . . . . . . . . . . 20-22
Batch-Move-Komponenten erzeugen . . . 20-22Batch-Move-Modi . . . . . . . . . . . . . . 20-23
Anhngen . . . . . . . . . . . . . . . . . 20-24Aktualisieren . . . . . . . . . . . . . . . 20-24Anhngen und Aktualisieren . . . . . . 20-24Kopieren . . . . . . . . . . . . . . . . . . 20-24Lschen . . . . . . . . . . . . . . . . . . 20-24
Datentypen zuordnen . . . . . . . . . . . . 20-25Batch-Move-Operationen ausfhren . . . . 20-26Batch-Move-Fehler . . . . . . . . . . . . . . 20-26
Mit einer Datenbanktabelle verknpfte Tabellenkomponenten synchronisieren . . . 20-27
Haupt/Detail-Formulare erstellen . . . . . . . 20-28Beispiel fr ein Haupt/Detail-Formular . . 20-28
Verschachtelte Tabellen . . . . . . . . . . . . . 20-29Verschachtelte Tabellenkomponenten
einrichten . . . . . . . . . . . . . . . . . . 20-30
Kapitel 21Abfragen 21-1Abfragen effektiv einsetzen. . . . . . . . . . . . 21-1
Abfragen fr Desktop-Entwickler . . . . . . 21-2Abfragen fr Server-Entwickler . . . . . . . 21-3
Datenbanken, auf die mit einer Abfragekomponente zugegriffen werden kann . . . . . . . . . . . . . . . . . . . . . . . . 21-4
Abfragekomponenten im berblick . . . . . . . 21-4Die Eigenschaft SQL setzen. . . . . . . . . . . . 21-6
Die Eigenschaft SQL zur Entwurfszeit setzen. . 21-7
Die Eigenschaft SQL zur Laufzeit setzen . . 21-7Die Eigenschaft SQL direkt setzen . . . . 21-8Die Eigenschaft SQL aus einer Datei
laden . . . . . . . . . . . . . . . . . . . . 21-8Die Eigenschaft SQL aus einem Stringlisten-
Objekt laden . . . . . . . . . . . . . . . . 21-9Parameter setzen . . . . . . . . . . . . . . . . . . 21-9
Parameter zur Entwurfszeit setzen. . . . . 21-10Parameter zur Laufzeit setzen . . . . . . . 21-11Datenquellen fr die Parameterbindung . 21-11
Abfragen ausfhren . . . . . . . . . . . . . . . 21-13Abfragen zur Entwurfszeit ausfhren . . . 21-13Abfragen zur Laufzeit ausfhren. . . . . . 21-14
Abfragen ausfhren, die Ergebnismengen liefern . . . . . . . . . . . . . . . . . . 21-14
Abfragen ausfhren, die keine Ergebnismengen liefern . . . . . . . . 21-15
Abfragen vorbereiten . . . . . . . . . . . . . . 21-15Abfragen zur Freigabe von Ressourcen
zurcksetzen. . . . . . . . . . . . . . . . . . 21-15Heterogene Abfragen erstellen . . . . . . . . 21-16Die Ausfhrungsgeschwindigkeit von Abfragen
erhhen. . . . . . . . . . . . . . . . . . . . . 21-17Bidirektionale Cursor deaktivieren . . . . 21-17
Mit Ergebnismengen arbeiten . . . . . . . . . 21-18Die Bearbeitung einer Ergebnismenge
ermglichen . . . . . . . . . . . . . . . . 21-18Local SQL-Syntax fr aktualisierbare
Ergebnismengen . . . . . . . . . . . . . . 21-18Einschrnkungen fr Abfragen mit
aktualisierbaren Ergebnismengen . . 21-18Remote-Server-SQL fr aktualisierbare
Ergebnismengen . . . . . . . . . . . . . . 21-19Einschrnkungen bei der Bearbeitung von
aktualisierbaren Ergebnismengen . . . . 21-19Nur-Lesen-Ergebnismengen aktualisieren 21-19
Kapitel 22Stored Procedures 22-1Stored Procedures verwenden. . . . . . . . . . 22-2Mit Stored Procedures arbeiten . . . . . . . . . 22-3
Stored-Procedure-Komponenten erstellen . 22-3Stored Procedures erstellen . . . . . . . . . 22-4Stored Procedures vorbereiten und
ausfhren . . . . . . . . . . . . . . . . . . . 22-5Stored Procedures, die Ergebnismengen
zurckgeben . . . . . . . . . . . . . . . . . 22-6Ergebnismengen mit einer TQuery-
Komponente abrufen . . . . . . . . . . 22-6Ergebnismengen mit einer TStoredProc-
Komponente abrufen . . . . . . . . . . 22-7Stored Procedures, die Daten mit Hilfe von
Parametern zurckliefern. . . . . . . . . . 22-7Einzelne Werte mit einer TQuery-
Komponente abrufen . . . . . . . . . . 22-7Einzelne Werte mit einer TStoredProc-
Komponente abrufen . . . . . . . . . . 22-8Stored Procedures, die Aktionen an Daten
vornehmen . . . . . . . . . . . . . . . . . . 22-9Stored Procedures, die Aktionen ausfhren,
mit einer TQuery-Komponente aufrufen . . . . . . . . . . . . . . . . . . 22-9
xii
Stored Procedures, die Aktionen ausfhren, mit einer TStoredProc-Komponente aufrufen . . . . . . . . . . . . . . . . . 22-10
Parameter fr Stored Procedures. . . . . . . . 22-11Eingabeparameter verwenden . . . . . . . 22-12Ausgabeparameter verwenden . . . . . . . 22-12Eingabe-/Ausgabeparameter verwenden . 22-13Ergebnisparameter verwenden . . . . . . . 22-14Zur Entwurfszeit auf Parameter zugreifen 22-14Parameter whrend des Entwurfs
einstellen. . . . . . . . . . . . . . . . . . . 22-14Parameter zur Laufzeit erstellen . . . . . . 22-16Parameterbindung . . . . . . . . . . . . . . 22-17
Parameterinformationen whrend des Entwurfs anzeigen. . . . . . . . . . . . . . . . . . . . . 22-17
berladene Stored Procedures in Oracle . . . 22-18
Kapitel 23Mit ADO-Komponenten arbeiten 23-1ADO-Komponenten im berblick . . . . . . . . 23-2Verbindungen zu ADO-Datenspeichern
einrichten . . . . . . . . . . . . . . . . . . . . . 23-3Mit TADOConnection eine Verbindung zu
einem Datenspeicher einrichten . . . . . . 23-3TADOConnection im Vergleich mit der
Eigenschaft ConnectionString einer Datenmenge . . . . . . . . . . . . . . . . 23-4
Verbindungen festlegen . . . . . . . . . . 23-4Auf das Verbindungsobjekt zugreifen . . 23-5Verbindungen aktivieren und
deaktivieren . . . . . . . . . . . . . . . . 23-5Den Status einer Verbindungskomponente
abrufen . . . . . . . . . . . . . . . . . . . 23-6Verbindungen optimieren . . . . . . . . . . . 23-6
Verbindungsattribute angeben . . . . . . 23-7Timeouts steuern . . . . . . . . . . . . . . 23-8Die Anmeldung fr eine Verbindung
steuern . . . . . . . . . . . . . . . . . . . 23-8Tabellen und Stored Procedures abrufen . . 23-9
Auf die Datenmengen einer Verbindung zugreifen . . . . . . . . . . . . . . . . . . 23-9
Auf die Befehle einer Verbindung zugreifen . . . . . . . . . . . . . . . . . 23-10
Verfgbare Tabellen abrufen. . . . . . . 23-11Verfgbare Stored Procedures abrufen . 23-12
Mit Verbindungstransaktionen arbeiten . . 23-12Transaktionsmethoden verwenden . . . 23-12Transaktionsereignisse verwenden . . . 23-13
ADO-Datenmengen verwenden . . . . . . . . 23-13
Gemeinsame Merkmale aller ADO-Datenmengenkomponenten . . . . . . . 23-14
Daten ndern . . . . . . . . . . . . . . . 23-14In Datenmengen navigieren . . . . . . 23-14Visuelle datensensitive Steuerelemente
verwenden . . . . . . . . . . . . . . . 23-15Mit ADO-Datenmengenkomponenten
Verbindungen zu Datenspeichern herstellen . . . . . . . . . . . . . . . . 23-15
Mit Datensatzmengen arbeiten. . . . . 23-16Batch-Aktualisierungen verwenden . . 23-17Daten aus Dateien laden und in Dateien
speichern . . . . . . . . . . . . . . . . 23-19Parameter in Befehlen verwenden . . . 23-20
TADODataSet verwenden . . . . . . . . . 23-21Mit Befehlen auf Datenmengen
zugreifen . . . . . . . . . . . . . . . . 23-22TADOTable verwenden. . . . . . . . . . . 23-22
Zu verwendende Tabellen festlegen . . 23-23TADOQuery verwenden . . . . . . . . . . 23-24
SQL-Anweisungen festlegen . . . . . . 23-24SQL-Anweisungen ausfhren . . . . . 23-25
TADOStoredProc verwenden . . . . . . . 23-25Stored Procedures festlegen . . . . . . 23-26Stored Procedures ausfhren . . . . . . 23-27Parameter mit Stored Procedures
verwenden . . . . . . . . . . . . . . . 23-27Befehle ausfhren . . . . . . . . . . . . . . . . 23-30
Befehle festlegen. . . . . . . . . . . . . . . 23-30Die Methode Execute verwenden . . . . . 23-31Befehle abbrechen . . . . . . . . . . . . . . 23-31Mit Befehlen auf Ergebnismengen
zugreifen . . . . . . . . . . . . . . . . . . 23-32Befehlsparameter verarbeiten . . . . . . . 23-32
Kapitel 24Client-Datenmengen 24-1Client-Datenmengen . . . . . . . . . . . . . . . 24-2
Durch die Daten einer Client-Datenmenge navigieren . . . . . . . . . . . . . . . . . . 24-2
Datenstze einschrnken . . . . . . . . . . . 24-2Haupt/Detail-Beziehungen . . . . . . . . . 24-3Datenwerte beschrnken . . . . . . . . . . . 24-4Daten das Attribut Nur-Lesen zuweisen . . 24-4Daten bearbeiten . . . . . . . . . . . . . . . 24-5
nderungen rckgngig machen . . . . 24-5nderungen speichern . . . . . . . . . . 24-6
Sortieren und Indizieren . . . . . . . . . . . 24-6Einen neuen Index hinzufgen. . . . . . 24-7
xiii
Indizes entfernen und wechseln . . . . . 24-8Daten mit Indizes gruppieren . . . . . . . 24-8Bei Bedarf indizieren . . . . . . . . . . . . 24-9
Berechnete Felder hinzufgen . . . . . . . . 24-9Intern berechnete Felder in Client-
Datenmengen verwenden . . . . . . . 24-10Gewartete Aggregate verwenden . . . . . 24-10
Aggregate angeben . . . . . . . . . . . . 24-10Datensatzgruppen zusammenfassen . . 24-12Aggregatwerte abrufen. . . . . . . . . . 24-13
Anwendungsspezifische Informationen zu den Daten hinzufgen . . . . . . . . . . . 24-13
Daten aus einer anderen Datenmenge kopieren . . 24-13
Daten direkt zuweisen . . . . . . . . . . . . 24-14Datenmengen replizieren . . . . . . . . . . 24-15
Eine Client-Datenmenge mit einem Daten-Provider verwenden . . . . . . . . . . . . . . . . . . . 24-15
Einen Daten-Provider festlegen. . . . . . . 24-16Parameter vom Anwendungsserver
abrufen. . . . . . . . . . . . . . . . . . . . 24-16Parameter an den Anwendungsserver bergeben
24-17Parameter fr Abfragen oder Stored
Procedures senden . . . . . . . . . . . 24-18Datenstze durch Parameter
einschrnken. . . . . . . . . . . . . . . 24-18Die Datenmenge auf dem Anwendungsserver
berschreiben . . . . . . . . . . . . . . . . 24-18Daten von einem Anwendungsserver
anfordern . . . . . . . . . . . . . . . . . . 24-19Beschrnkungen verarbeiten . . . . . . . . 24-21
Server-Beschrnkungen verarbeiten . . 24-21Benutzerdefinierte Beschrnkungen
hinzufgen. . . . . . . . . . . . . . . . 24-22Datenstze aktualisieren. . . . . . . . . . . 24-22Aktualisierungen eintragen . . . . . . . . . 24-23
Aktualisierungsfehler bereinigen . . . . 24-24Daten aktualisieren. . . . . . . . . . . . . . 24-25Mit Provider-Komponenten
kommunizieren . . . . . . . . . . . . . . . 24-25Eine Client-Datenmenge mit unstrukturierten
Daten verwenden . . . . . . . . . . . . . . . 24-26Eine neue Datenmenge erstellen . . . . . . 24-27Daten aus einer Datei oder einem Stream
laden . . . . . . . . . . . . . . . . . . . . . 24-27nderungen in die Daten schreiben . . . . 24-27Daten in einer Datei oder einem Stream
speichern . . . . . . . . . . . . . . . . . . 24-28
Kapitel 25Zwischengespeicherte Aktualisierungen25-1
Wann werden zwischengespeicherte Aktualisierungen eingesetzt? . . . . . . . . . 25-1
Die Realisierung im berblick. . . . . . . . . . 25-2Die Zwischenspeicherung aktivieren und
deaktivieren . . . . . . . . . . . . . . . . . 25-3Datenstze abrufen . . . . . . . . . . . . . . 25-4Zwischengespeicherte Aktualisierungen
zurckschreiben . . . . . . . . . . . . . . . 25-4Aktualisierungen mit Datenbank-
Komponenten eintragen. . . . . . . . . 25-5Zurckschreiben bei Datenmengen-
komponenten . . . . . . . . . . . . . . . 25-6Haupt/Detailtabellen aktualisieren . . . 25-7
Anstehende Aktualisierungen verwerfen . 25-8Anstehende Aktualisierungen verwerfen
und die Zwischenspeicherung deaktivieren. . . . . . . . . . . . . . . . 25-8
Nur anstehende Aktualisierungen verwerfen . . . . . . . . . . . . . . . . . 25-8
Aktualisierungen am aktuellen Datensatz verwerfen . . . . . . . . . . . . . . . . 25-9
Gelschte Datenstze wiederherstellen . . . 25-9Die Datensatztypen fr die Datenmenge
festlegen . . . . . . . . . . . . . . . . . . 25-10Aktualisierungsstatus prfen . . . . . . . .25-11
Update-Objekte . . . . . . . . . . . . . . . . . 25-12Die Eigenschaft UpdateObject einer
Datenmenge . . . . . . . . . . . . . . . . 25-12Ein einzelnes Update-Objekt verwenden . . .
25-13Mehrere Update-Objekte verwenden . 25-13
SQL-Anweisungen fr Update-Komponenten erstellen . . . . . . . . . . . . . . . . . . . 25-14
SQL-Anweisungen zur Entwurfszeit erstellen . . . . . . . . . . . . . . . . . 25-15
Parameterersetzung in SQL-Anweisungen. . . . . . . . . . . . . . 25-16
SQL-Anweisungen schreiben. . . . . . 25-17Die Eigenschaft Query einer Update-
Komponente . . . . . . . . . . . . . . 25-18Die Eigenschaften DeleteSQL, InsertSQL und
ModifySQL . . . . . . . . . . . . . . . 25-19Update-Anweisungen ausfhren . . . . . 25-20
Die Methode Apply . . . . . . . . . . . 25-20Die Methode SetParams. . . . . . . . . 25-21Die Methode ExecSQL . . . . . . . . . 25-21
xiv
Eine Datenmenge mit Datenmengenkomponenten aktualisieren25-22
Schreibgeschtzte Ergebnismengen aktualisieren . . . . . . . . . . . . . . . . . . 25-23
Den Aktualisierungsvorgang steuern . . . . . 25-24Wann mu der Aktualisierungsproze
berwacht werden? . . . . . . . . . . . . 25-24Eine Ereignisbehandlungsroutine fr
OnUpdateRecord erzeugen . . . . . . . . 25-25Fehlerbehandlung . . . . . . . . . . . . . . . . 25-26
Referenz auf die betroffene Datenmenge . 25-27Feststellen, wie der aktuelle Datensatz
gendert wurde . . . . . . . . . . . . . . . 25-27Die durchzufhrende Aktion festlegen . . 25-28Eine Fehlermeldung definieren . . . . . . . 25-29Die Feldeigenschaften OldValue, NewValue
und CurValue . . . . . . . . . . . . . . . . 25-29
Kapitel 26Datensensitive Steuerelemente 26-1Datensensitive Steuerelemente im berblick . . 26-1
Datensensitive Steuerelemente einer Datenmenge zuordnen. . . . . . . . . . . . 26-3
Daten bearbeiten und aktualisieren . . . . . 26-3Den Bearbeitungsmodus aktivieren . . . 26-3Daten in einem Steuerelement bearbeiten26-4
Die Datenanzeige aktivieren und deaktivieren . . . . . . . . . . . . . . . . . . 26-5
Datenanzeige aktualisieren . . . . . . . . . . 26-6Maus-, Tastatur- und Timer-Ereignisse. . . . 26-6
Datenquellen verwenden . . . . . . . . . . . . . 26-6TDataSource-Eigenschaften verwenden . . . 26-7
Eigenschaft DataSet einstellen. . . . . . . 26-7Eigenschaft Name einstellen. . . . . . . . 26-7Eigenschaft Enabled einstellen . . . . . . 26-8Eigenschaft AutoEdit einstellen . . . . . . 26-8
TDataSource-Ereignisse verwenden . . . . . 26-8Ereignis OnDataChange verwenden . . . 26-8Ereignis OnUpdateData verwenden . . . 26-9Ereignis OnStateChange verwenden . . . 26-9
Steuerelemente zur Darstellung eines einzelnen Feldes . . . . . . . . . . . . . . . . . . . . . . 26-10
Felder als Beschriftung anzeigen . . . . . . 26-10Feldinhalte in Eingabefeldern anzeigen und
bearbeiten . . . . . . . . . . . . . . . . . . 26-10Textfelder in einem Memo-Steuerelement
anzeigen und bearbeiten. . . . . . . . . . 26-11Text in einem RTF-Eingabefeld anzeigen und
bearbeiten . . . . . . . . . . . . . . . . . . 26-12
Grafikfelder in einem Bild-Steuerelement anzeigen und bearbeiten . . . . . . . . . 26-12
Daten in Listen- und Kombinationsfeldern anzeigen und bearbeiten . . . . . . . . . 26-13
Daten in Listenfeldern anzeigen und bearbeiten . . . . . . . . . . . . . . . . 26-13
Daten in Kombinationsfeldern anzeigen und bearbeiten . . . . . . . . . . . . . . . . 26-14
Daten in Lookup-Listen und -Kombinationsfeldern anzeigen und bearbeiten . . . . . . . . . . . . . . . . . 26-15
Listen, die auf Lookup-Feldern basieren26-15Listen, die auf einer sekundren Datenquelle
basieren . . . . . . . . . . . . . . . . . 26-16Eigenschaften von Lookup-Listen und
Lookup-Kombinationsfeldern . . . . 26-17Inkrementelle Suche in Listen . . . . . 26-17
Boolesche Feldwerte und Kontrollfelder . 26-18Feldwerte mit Optionsfeldern
einschrnken . . . . . . . . . . . . . . . . 26-19Daten mit TDBGrid anzeigen und bearbeiten 26-20
Gitter im Standardstatus verwenden . . . 26-21Angepate Gitter erstellen . . . . . . . . . 26-21
Persistente Spalten Grundlagen . . . 26-22Quelle einer Spalteneigenschaft zur Laufzeit
festlegen. . . . . . . . . . . . . . . . . 26-23Persistente Spalten erstellen . . . . . . 26-23Persistente Spalten lschen . . . . . . . 26-24Reihenfolge persistenter Spalten ndern26-24Lookup-Spalte definieren . . . . . . . . 26-25Auswahllistenspalte definieren . . . . 26-25Schaltflche in Spalte einfgen . . . . . 26-25Spalteneigenschaften beim Entwurf
einstellen . . . . . . . . . . . . . . . . 26-26Standardwerte einer Spalte
wiederherstellen . . . . . . . . . . . . 26-27ADT- und Array-Felder anzeigen . . . . . 26-27Gitteroptionen einstellen . . . . . . . . . . 26-29Daten im Gitter bearbeiten . . . . . . . . . 26-30Spaltenreihenfolge beim Entwurf ndern 26-31Spaltenreihenfolge zur Laufzeit ndern . 26-31
Gitterdarstellung steuern . . . . . . . . 26-31Zur Laufzeit auf Benutzeraktionen
reagieren . . . . . . . . . . . . . . . . . . 26-32Gitter mit anderen datensensitiven
Steuerelementen erstellen . . . . . . . . . . 26-33Navigation und Bearbeitung von
Datenmengen . . . . . . . . . . . . . . . . . 26-34
xv
Navigator-Schaltflchen ein- und ausblenden . . . . . . . . . . . . . . . . . 26-35
Navigator-Schaltflchen zur Entwurfszeit ein- und ausblenden . . . . . . . . . . 26-35
Navigator-Schaltflchen zur Laufzeit ein- und ausblenden . . . . . . . . . . . . . 26-36
Hilfehinweise anzeigen . . . . . . . . . . . 26-37Ein Navigator fr mehrere Datenmengen . 26-37
Kapitel 27Entscheidungskomponenten 27-1berblick . . . . . . . . . . . . . . . . . . . . . . 27-1Kreuztabellen. . . . . . . . . . . . . . . . . . . . 27-2
Eindimensionale Kreuztabellen. . . . . . . . 27-3Mehrdimensionale Kreuztabellen . . . . . . 27-3
Entscheidungskomponenten verwenden . . . . 27-3Datenmengen und Entscheidungs-
komponenten . . . . . . . . . . . . . . . . . . . 27-5Entscheidungsdatenmengen mit TQuery oder TTable erzeugen . . . . . . . . . . . . . 27-6Entscheidungsdatenmengen mit dem
Entscheidungsabfragen-Editor erzeugen . 27-6Der Editor fr Entscheidungsabfragen . . 27-6
Eigenschaften von TDecisionQuery . . . . . 27-7Mit Entscheidungswrfeln arbeiten . . . . . . . 27-8
Eigenschaften und Ereignisse . . . . . . . . . 27-8Der Editor fr den Entscheidungswrfel . . 27-8
Dimensionseinstellungen anzeigen und ndern . . . . . . . . . . . . . . . . . . . 27-9
Grenzwerte fr Dimensionen und Zusammenfassungen . . . . . . . . . . . 27-9
Gestaltungsoptionen anzeigen und ndern . . . . . . . . . . . . . . . . . . . 27-10
Mit Entscheidungsquellen arbeiten . . . . . . 27-10Eigenschaften und Ereignisse . . . . . . . . 27-10
Mit Entscheidungspivots arbeiten . . . . . . . 27-11Eigenschaften von Entscheidungspivots. . 27-11
Entscheidungsgitter erstellen und verwenden 27-12Entscheidungsgitter erstellen . . . . . . . . 27-12Mit Entscheidungsgittern arbeiten . . . . . 27-12
Felder im Entscheidungsgitter ffnen und schlieen . . . . . . . . . . . . . . . . . . 27-13Entscheidungsgitter reorganisieren. . . 27-13Detaildaten in Entscheidungsgittern anzeigen . . . . . . . . . . . . . . . . . . 27-13Die Dimensionszahl in Entscheidungsgittern
begrenzen . . . . . . . . . . . . . . . . 27-13Eigenschaften von Entscheidungsgittern . 27-14
Entscheidungsgraphen erstellen und verwenden . . . . . . . . . . . . . . . . . . . 27-15
Entscheidungsgraphen erstellen. . . . . . 27-15Mit Entscheidungsgraphen arbeiten . . . 27-15Der Informationsgehalt von Entscheidungs-
graphen . . . . . . . . . . . . . . . . . . . 27-17Entscheidungsgraphen gestalten . . . . . 27-17
Standardwerte fr Entscheidungsgraphen als Schablonen . . . . . . . . . . . . . 27-18
Reihen in Entscheidungsgraphen gestalten. . . . . . . . . . . . . . . . . 27-19
Entscheidungskomponenten zur Laufzeit . . 27-20Entscheidungspivots zur Laufzeit . . . . . 27-20Entscheidungsgitter zur Laufzeit . . . . . 27-21Entscheidungsgraphen zur Laufzeit . . . 27-21
Entscheidungskomponenten und Speicher-verwaltung. . . . . . . . . . . . . . . . . . . 27-22
Maximalwerte fr Dimensionen, Zusammenfassungen und Zellen . . . . 27-22
Den Status der Dimensionen einstellen . . 27-22Permanent ausgelagerte Dimensionen . . 27-23
Teil IIIVerteilte Anwendungen entwickeln
Kapitel 28CORBA-Anwendungen 28-1CORBA-Anwendungen im berblick . . . . . 28-2
Stubs und Skeletons. . . . . . . . . . . . . . 28-3Smart Agents. . . . . . . . . . . . . . . . . . 28-3Server-Anwendungen aktivieren . . . . . . 28-4Dynamisches Binden von Schnittstellen
aufrufen. . . . . . . . . . . . . . . . . . . . 28-4CORBA-Server schreiben . . . . . . . . . . . . 28-5
CORBA-Experten . . . . . . . . . . . . . . . 28-5Objektschnittstellen definieren. . . . . . . . 28-6Automatisch generierter Code . . . . . . . . 28-8Server-Schnittstellen registrieren . . . . . . 28-9
Schnittstellen bei der Schnittstellenablage registrieren . . . . . . . . . . . . . . . . 28-9
Schnittstellen beim Object Activation Daemon registrieren . . . . . . . . . . .28-11
CORBA-Clients schreiben . . . . . . . . . . . 28-13Stubs verwenden . . . . . . . . . . . . . . 28-13Die dynamische Aufrufschnittstelle
verwenden . . . . . . . . . . . . . . . . . 28-14Schnittstelle abrufen . . . . . . . . . . . 28-15Schnittstellen mit der DII aufrufen. . . 28-15
CORBA-Anwendungen anpassen . . . . . . 28-17
xvi
Objekte in der Benutzeroberflche anzeigen . . . . . . . . . . . . . . . . . . . 28-17
CORBA-Objekte bereitstellen und deaktivieren . . . . . . . . . . . . . . . . . 28-18
Client-Informationen an Server-Objekte bergeben . . . . . . . . . . . . . . . . . . 28-18
CORBA-Anwendungen weitergeben . . . . . 28-18Smart Agents konfigurieren. . . . . . . . . 28-19
Einen Smart Agent starten . . . . . . . . 28-20ORB-Domnen konfigurieren . . . . . . 28-20Smart Agents in verschiedenen lokalen
Netzwerken verbinden . . . . . . . . . 28-21
Kapitel 29Internet-Server-Anwendungen 29-1Terminologie und Standards . . . . . . . . . . . 29-1
Bestandteile einer URL . . . . . . . . . . . . 29-2URI und URL . . . . . . . . . . . . . . . . 29-3
Informationen in den Headern von HTTP-Anforderungen . . . . . . . . . . . . . . . . 29-3
HTTP-Server-Aktivitten . . . . . . . . . . . . . 29-3Client-Anforderungen zusammenstellen . . 29-4Client-Anforderungen bedienen . . . . . . . 29-4Auf Client-Anforderungen antworten . . . . 29-5
Web-Server-Anwendungen . . . . . . . . . . . . 29-5Arten von Web-Server-Anwendungen. . . . 29-6
ISAPI und NSAPI . . . . . . . . . . . . . . 29-6CGI-Programme . . . . . . . . . . . . . . 29-6Win-CGI-Programme. . . . . . . . . . . . 29-6
Web-Server-Anwendungen erstellen. . . . . 29-7Das Web-Modul . . . . . . . . . . . . . . . . 29-7Das Web-Anwendungsobjekt . . . . . . . . . 29-8
Die Struktur einer Web-Server-Anwendung . . 29-8Der Web-Dispatcher . . . . . . . . . . . . . . . 29-10
Aktionen zum Dispatcher hinzufgen. . . 29-10Anforderungsbotschaften verteilen . . . . 29-10
Aktionselemente . . . . . . . . . . . . . . . . . 29-11Das Auslsen von Aktionselementen
festlegen . . . . . . . . . . . . . . . . . . . 29-11Die Ziel-URL . . . . . . . . . . . . . . . 29-11Der Anforderungsmethodentyp . . . . 29-12Aktionselemente aktivieren und
deaktivieren . . . . . . . . . . . . . . . 29-12Ein Standard-Aktionselement festlegen 29-13
Mit Aktionselementen auf Anforderungsbotschaften antworten. . . 29-13
Die Antwort senden . . . . . . . . . . . 29-14Mehrere Aktionselemente verwenden . 29-14
Auf Client-Anforderungsinformationen zugreifen . . . . . . . . . . . . . . . . . . . . 29-14
Eigenschaften, die Header-Informationen zur Anforderung enthalten . . . . . . . . . . 29-15
Eigenschaften, die das Ziel bezeichnen 29-15Eigenschaften, die den Web-Client
beschreiben . . . . . . . . . . . . . . . 29-15Eigenschaften, die auf den Zweck der
Anforderung hinweisen . . . . . . . . 29-16Eigenschaften, die die erwartete Antwort
beschreiben . . . . . . . . . . . . . . . 29-16Eigenschaften, die den Inhalt
beschreiben . . . . . . . . . . . . . . . 29-16Der Inhalt von HTTP-Anforderungs-
botschaften . . . . . . . . . . . . . . . . . 29-17HTTP-Anwortbotschaften erzeugen . . . . . 29-17
Den Antwort-Header fllen . . . . . . . . 29-17Den Antwortstatus anzeigen . . . . . . 29-18Auf eine erforderliche Client-Aktion
hinweisen . . . . . . . . . . . . . . . . 29-18Die Server-Anwendung beschreiben . 29-18Den Inhalt beschreiben . . . . . . . . . 29-19
Den Antwortinhalt festlegen . . . . . . . . 29-19Die Antwort senden. . . . . . . . . . . . . 29-19
Den Inhalt von Antwortbotschaften generieren . . . . . . . . . . . . . . . . . . . 29-20
Seitengeneratoren einsetzen . . . . . . . . 29-20HTML-Vorlagen . . . . . . . . . . . . . 29-20Vordefinierte HTML-transparente Tag-
Namen verwenden. . . . . . . . . . . 29-21Die HTML-Vorlage definieren . . . . . 29-22HTML-transparente Tags konvertieren 29-22Seitengeneratoren und Aktions-
elemente. . . . . . . . . . . . . . . . . 29-22Seitengeneratoren verketten . . . . . . 29-23
Datenbankinformationen in Antworten integrieren . . . . . . . . . . . . . . . . . . . 29-24
Eine Sitzung zum Web-Modul hinzufgen 29-25Datenbankinformationen in HTML
darstellen . . . . . . . . . . . . . . . . . . 29-25Datenmengen-Seitengeneratoren
verwenden . . . . . . . . . . . . . . . 29-25Tabellengeneratoren verwenden . . . . 29-26Die Tabellenattribute festlegen . . . . . 29-26Die Zeilenattribute festlegen . . . . . . 29-27Die Spalten festlegen . . . . . . . . . . 29-27Tabellen in HTML-Dokumente einbetten . . . . . . . . . . . . . . . . . 29-27
xvii
Einen Datenmengen-Tabellengenerator einrichten . . . . . . . . . . . . . . . . 29-28
Einen Abfrage-Tabellengenerator einrichten . . . . . . . . . . . . . . . . 29-28
Server-Anwendungen testen . . . . . . . . . . 29-28ISAPI- und NSAPI-Anwendungen testen . 29-29
Unter Windows NT testen . . . . . . . . 29-29Mit einem Microsoft IIS-Server testen . 29-29Unter MTS testen . . . . . . . . . . . . . 29-30Mit einem Windows 95 Personal-Web-Server testen . . . . . . . . . . . . . . . . . . . . 29-31Mit Netscape Server 2.0 testen . . . . . 29-32
CGI- und Win-CGI-Anwendungen testen . 29-33Den Server simulieren . . . . . . . . . . 29-33Als DLL testen . . . . . . . . . . . . . . 29-33
Kapitel 30Arbeiten mit Sockets 30-1Dienste implementieren . . . . . . . . . . . . . . 30-1
Was sind Dienstprotokolle? . . . . . . . . . . 30-2Mit Anwendungen kommunizieren . . . 30-2
Dienste und Schnittstellen. . . . . . . . . . . 30-2Typen von Socket-Verbindungen. . . . . . . . . 30-3
Client-Verbindungen. . . . . . . . . . . . . . 30-3Empfangende Verbindungen . . . . . . . . . 30-3Server-Verbindungen . . . . . . . . . . . . . 30-3
Die Sockets beschreiben . . . . . . . . . . . . . . 30-4Den Host beschreiben . . . . . . . . . . . . . 30-4
Zwischen einem Host-Namen und einer IP-Adresse whlen . . . . . . . . . . . . . . 30-5
Schnittstellen verwenden . . . . . . . . . . . 30-5Socket-Komponenten . . . . . . . . . . . . . . . 30-6
Client-Sockets. . . . . . . . . . . . . . . . . . 30-6Den gewnschten Server angeben . . . . 30-6Die Verbindung aufbauen . . . . . . . . . 30-7Informationen ber die Verbindung ermitteln . . . . . . . . . . . . . . . . . . . 30-7Die Verbindung beenden. . . . . . . . . . 30-7
Server-Sockets . . . . . . . . . . . . . . . . . 30-7Die Schnittstelle angeben . . . . . . . . . 30-8Client-Anforderungen empfangen . . . . 30-8Verbindungen zu Clients aufbauen . . . . 30-8Informationen ber Verbindungen
ermitteln . . . . . . . . . . . . . . . . . . 30-8Die Server-Verbindung beenden . . . . . 30-9
Auf Socket-Ereignisse antworten . . . . . . . . 30-9Fehlerereignisse. . . . . . . . . . . . . . . . . 30-9Client-Ereignisse . . . . . . . . . . . . . . . 30-10Server-Ereignisse . . . . . . . . . . . . . . . 30-10
Ereignisse bei empfangenden Verbindungen . . . . . . . . . . . . . .30-11
Ereignisse bei Client-Verbindungen . . .30-11Informationen ber Socket-Verbindungen lesen
und schreiben . . . . . . . . . . . . . . . . . 30-12Nicht-blockierende Verbindungen . . . . 30-12
Lese- und Schreib-Ereignisse . . . . . . 30-12Blockierende Verbindungen . . . . . . . . 30-13
Verwenden von Threads bei blockierenden Verbindungen . . . . . . . . . . . . . 30-13
Verwenden von TWinSocketStream . . 30-14Client-Threads schreiben . . . . . . . . 30-14Server-Threads schreiben . . . . . . . . 30-15
Teil IVBenutzerdefinierte Komponenten erzeugen
Kapitel 31Die Komponentenentwicklung im berblick 31-1
Die Bibliothek visueller Komponenten . . . . . 31-1Komponenten und Klassen . . . . . . . . . . . 31-2Wie werden Komponenten erzeugt? . . . . . . 31-3
Vorhandene Steuerelemente modifizieren . 31-3Fensterorientierte Steuerelemente erzeugen 31-4Grafische Steuerelemente erzeugen . . . . . 31-4Unterklassen von Windows-Steuerelementen
erzeugen . . . . . . . . . . . . . . . . . . . 31-5Nichtvisuelle Komponenten erzeugen . . . 31-5
Was zeichnet Komponenten aus? . . . . . . . . 31-5Abhngigkeiten vermeiden . . . . . . . . . 31-6Eigenschaften, Ereignisse und Methoden . 31-6
Eigenschaften. . . . . . . . . . . . . . . . 31-6Ereignisse . . . . . . . . . . . . . . . . . . 31-7Methoden . . . . . . . . . . . . . . . . . . 31-7
Grafik kapseln . . . . . . . . . . . . . . . . . 31-8Registrierung. . . . . . . . . . . . . . . . . . 31-8
Eine neue Komponente erzeugen . . . . . . . . 31-9Der Komponentenexperte . . . . . . . . . 31-10Eine Komponente manuell erzeugen . . . 31-12
Eine Unit erzeugen . . . . . . . . . . . 31-12Die Komponente ableiten . . . . . . . . 31-12Beispiel fr die Ableitung einer
Komponente . . . . . . . . . . . . . . 31-13Die Komponente registrieren . . . . . . 31-13
Komponenten vor der Installation testen . . 31-14
xviii
Kapitel 32Objektorientierte Programmierung fr Komponentenentwickler 32-1
Neue Klassen definieren . . . . . . . . . . . . . 32-2Neue Klassen ableiten . . . . . . . . . . . . . 32-2
ndern der Voreinstellungen einer Klasse zur Vermeidung von Wiederholung . . 32-2
Einer Klasse neue Fhigkeiten hinzufgen. . . . . . . . . . . . . . . . . 32-3
Eine neue Komponentenklasse deklarieren .32-3Vorfahren, Nachkommen und Klassen-
hierarchien . . . . . . . . . . . . . . . . . . . . 32-4Zugriffssteuerung . . . . . . . . . . . . . . . . . 32-4
Implementierungsdetails verbergen . . . . . 32-5Die Schnittstelle des Komponentenentwicklers
definieren . . . . . . . . . . . . . . . . . . . 32-6Die Laufzeit-Schnittstelle definieren . . . . . 32-7Die Entwurfszeit-Schnittstelle definieren . . 32-7
Dispatch-Methoden . . . . . . . . . . . . . . . . 32-8Statische Methoden . . . . . . . . . . . . . . 32-8Virtuelle Methoden. . . . . . . . . . . . . . . 32-9
Methoden berschreiben. . . . . . . . . . 32-9Dynamische Methoden. . . . . . . . . . 32-10
Abstrakte Klassenelemente . . . . . . . . . . . 32-10Klassen und Zeiger . . . . . . . . . . . . . . . 32-11
Kapitel 33Eigenschaften erstellen 33-1Wozu dienen Eigenschaften? . . . . . . . . . . . 33-1Typen von Eigenschaften . . . . . . . . . . . . . 33-2Geerbte Eigenschaften als published
deklarieren . . . . . . . . . . . . . . . . . . . . 33-3Eigenschaften definier