Suchen und Finden
Inhaltsverzeichnis
6
Vorwort des Herausgebers
16
Die VCL und CLX
18
1.1 Ein Euro-Umrechner
18
1.1.1 Umrechnungskurse und -regeln
19
1.1.2 Logik und Oberfläche trennen
21
1.1.3 Die Umrechnung implementieren
22
1.1.4 Control-Gruppen wiederverwenden mit Frames
24
1.1.5 Bilder aus Ressourcen laden
29
1.1.6 Komponenten im Quelltext erzeugen
32
1.1.7 Exkurs: Frames visuell bearbeiten
35
1.1.8 Umgerechnete Beträge anzeigen
36
1.1.9 Bessere Tastaturbedienung
38
1.2 Portierung nach Linux
39
Laufwerke, Verzeichnisse und Dateien
42
2.1 Standarddialoge
44
2.1.1 Der Standarddialog zum Öffnen von Dateien
44
2.1.2 Der nächste Standarddialog – Dateien speichern unter
51
2.1.3 TOpenPictureDialog, TSavePictureDialog
52
2.2 Datei- und Laufwerkskomponenten (File, Directory, Drive, Filter)
52
2.2.1 TDriveComboBox
53
2.2.2 TDirectoryListBox
57
2.2.3 TFileListBox
62
2.2.4 TFilterComboBox
63
2.3 Funktionen zum Bearbeiten und Verwalten von Laufwerken, Verzeichnissen und Dateien
71
2.3.1 Laufwerke
71
2.3.2 Verzeichnisse
76
2.3.3 Dateien
76
2.3.4 Arbeiten mit den Inhalten einer Datei
88
2.3.5 Fehlerbehandlung
107
2.3.6 Routinen für Textdateien
108
2.4 Dateihandles und Dateivariablen
109
2.5 Direkte API-Aufrufe
112
2.6 Suchen von Dateien mit API-Funktionen – Vergleich mit den Delphi-Funktionen
115
2.7 Rekursives Suchen im Dateibaum
118
2.7.1 Rekursive Dateibearbeitung – Ein etwas aufwendigeres Beispielprojekt
122
2.8 Diskussion der unterschiedlichen Funktionsgruppen
133
2.9 Shell-Programmierung
135
2.10 Des Rätsels Lösung
136
Docking
138
3.1 Die erstenVersuche
139
3.2 Docking Manager
140
3.3 Andocken unerwünscht
143
3.4 Ein Konzept mit Schwachstellen
144
TApplication, die etwas andere Komponente
146
4.1 Das Fundament im Bauwerk
147
4.2 Wozu TApplication?
148
4.3 Die Eigenschaften
151
4.3.1 Die wichtigsten Eigenschaften im Überblick
152
4.4 Die Methoden
155
4.4.1 Die wichtigsten Methoden im Überblick
156
4.5 Ereignisse
159
4.5.1 Die wichtigsten Ereignisse im Überblick
160
4.6 TApplication im Griff
161
4.7 Angriffsziel Projektdatei
162
4.8 Das unsichtbare Programm
163
4.9 Ein Programm für die Taskleiste
164
4.10 Botschaften auf Irrwegen
165
4.11 Läuft sie schon?
168
4.12 Schongang
170
4.13 Freiräume
173
Exception Handling – Ausnahmebehandlung
176
5.1 Syntax des Exception Handling in Delphi
177
5.1.1 Der Stoff, aus dem die Ausnahmen gemacht sind
181
5.1.2 Die Reihenfolge der Bearbeitung
184
5.2 Spezifische Informationen über die Instanz der Ausnahme
187
5.2.1 Die »Stapelabwicklung«
188
5.2.2 Exit, Break, Continue
190
5.2.3 »At« – eine Rarität
196
5.3 Hilfsroutinen
201
5.3.1 Assertions
202
Ressourcen
204
6.1 Der Resource Workshop
206
6.1.1 Benutzerdefinierte Ressourcen
208
6.2 Mehrsprachige Programme
209
Die Registry
212
7.1 Vor- und Nachteile
213
7.2 Der Registrierungseditor
215
7.2.1 Struktur der Registry
216
7.2.2 Datentypen der Schlüsseleinträge
222
7.2.3 Die Dateien »System.dat« und »User.dat«
223
7.3 Registry-Funktionen in Win32
224
7.3.1 Unicode- und ANSI-Format
224
7.3.2 Verwendete Datenstrukturen
225
7.3.3 Einige wichtige Win32-Funktionen
226
7.4 Anwendungen und Beispiele
230
7.4.1 Durchzuführende Eintragungen
230
7.4.2 Dateinamenerweiterungen (Dateiextension)
232
7.4.3 DDE-Verknüpfung mit dem Explorer
238
7.4.4 Anwendungsverzeichnis
243
7.4.5 Automatischer Programmstart
244
7.5 Die Bibliothek »Registry.pas«
246
7.5.1 Verfügbare Klassen
246
7.5.2 Datenstrukturen
246
7.5.3 Ausnahmebehandlung
248
7.5.4 Die Klasse TRegistry
249
7.5.5 Die Klasse TRegIniFile
258
7.5.6 Die Klasse TRegistryIniFile
260
Hooks
266
8.1 Dynamic Link Libraries (DLLs)
267
8.1.1 Statisches und dynamisches Einbinden
268
8.1.2 Wohin mit der DLL?
270
8.1.3 Fehlersuche in DLLs
272
8.1.4 Erstellen von DLLs
275
8.1.5 Fenster in DLLs
278
8.1.6 Datenaustausch zwischen Anwendungen über DLLs
281
8.2 Eingehakt : Hooks
286
8.2.1 Die Parameter hmod und dwThreadId
288
8.2.2 Die Callback-Funktion
290
8.2.3 Auswerten der Parameter
291
8.3 Endspurt
293
Einführung in das Open ools API
296
9.1 Hello World!
299
9.2 Verwendung von Services
302
9.3 Den Editor beeinflussen
305
9.4 Notifiers
309
9.5 Über die Experten hinaus...
311
9.6 Übersicht: IOTAMessageServices
312
9.7 Übersicht: IOTAActionServices
315
9.8 Übersicht: IOTAPackageServices
315
9.9 Übersicht: IOTAToDoServices
316
9.10 Übersicht: IOTAWizardServices
317
9.11 Übersicht: IOTAEditorServices
318
9.12 Übersicht: IOTADebuggerServices
319
9.12.1 Referenzen, Quellen und weitere nützliche Ressourcen
320
Prozeßverwaltung
322
10.1 Prozesse
322
10.1.1 Kernel-Objekte
325
10.1.2 Prozeßerzeugung
326
10.1.3 Prozeßverwaltung
332
10.2 Threads
333
10.2.1 Threaderzeugung
336
10.2.2 Threadverwaltung
338
10.2.3 Stack eines Threads
340
10.2.4 Deadlocks
342
10.2.5 Prioritäten
345
10.3 Synchronisation
349
10.3.1 Kritische Bereiche
354
10.3.2 Mutexe
357
10.3.3 Semaphoren
359
10.3.4 Ereignisse
363
10.3.5 Named Pipes
366
10.3.6 Verzögerung von Threads
373
10.3.7 Synchrone Zähler
375
10.3.8 Synchronisation in verteilten Anwendungen
377
10.3.9 Beeinflussung anderer Prozesse
377
10.4 Die Klasse TThread
381
10.4.1 Eigenschaften (Properties)
383
10.4.2 Methoden
385
10.5 Synchronisation
387
10.5.1 Die Klasse TCriticalSection
387
10.5.2 Die Klasse TEvent
387
10.5.3 Klasse TMultiReadExclusiveWriteSynchronizer
388
10.5.4 Anmerkungen
389
10.6 Entwurfsmuster
389
10.7 Beispiele
391
10.7.1 Beispiel 1: Lagersimulation
391
10.8 Beispiel 2: Producer/Consumer
393
10.9 Beispiel 3: Lagersimulation
395
10.10 Beispiel 4: Interlocked-Zähler
398
10.11 Beispiel 5: Supermarkt
400
Drucken
406
11.1 Die Unit Printers
406
11.2 Dialoge für den Anwender
412
11.3 Drucken mit Hindernissen
414
11.4 Der Weg zur Unabhängigkeit
415
11.5 Bis zum Äußersten
417
11.6 Eine Komponente für die Druckerausgabe
419
11.7 XPrint in der Praxis
428
11.8 Offene Wünsche
443
Die serielle Schnittstelle
444
12.1 Der Anschluß, das Kabel
444
12.2 Technische Betrachtungen
450
12.3 Handshake
453
12.4 Die Schnittstellen im PC
454
12.5 Serielle Datenkommunikation mit dem Windows-API
455
12.6 Ein Konfigurationsdialog
470
12.7 Die serielle Schnittstelle als I/O-Port
472
12.8 Praktische Beispiele
474
12.9 Mit Komponenten wird alles einfach
475
12.10 Ohne Zukunft?
491
Multimedia
492
13.1 MIDI-Sounds
492
13.1.1 Aufbau der MIDI-Datei
493
13.1.2 Die Channel-Events
495
13.1.3 Die Krux mit der Zeitdifferenz
495
13.1.4 Verfolgen des Abspielvorgangs
499
13.1.5 Praxis
500
13.1.6 Abspielung, Note für Note
506
13.1.7 MIDI-Sequenzen aufnehmen, abspielen, speichern
507
13.1.8 Der Datenstrom
510
13.1.9 Normale Channel-Messages
513
13.1.10 Daten als MIDI-Datei abspeichern
517
13.2 Mit Wave-Dateien arbeiten
524
13.2.1 Die Formate
525
13.2.2 Wave-Dateien einlesen
526
13.2.3 Gepackte Formate einlesen
530
13.2.4 Wave-Aufnahmen abspeichern
533
13.2.5 Sounds aufzeichnen
538
13.2.6 Aufnehmen von CD-Audiotracks
542
13.2.7 Sound gemixt
546
13.2.8 Darstellung
556
13.3 DirectX
561
13.3.1 DirectSound
561
13.3.2 DirectMusic
603
13.4 DirectDraw
636
13.4.1 Bilder im Fenstermodus
637
13.4.2 Bilder im Vollbildmodus
642
13.4.3 Direkt in das Video-RAM schreiben
645
13.4.4 Frei schwebend: Overlays
649
13.4.5 Aktion auf den Oberflächen
655
13.5 Transformieren mit DirectX Media
658
13.5.1 Transform-Units erzeugen
660
13.5.2 Das leidige Release
663
13.5.3 Was Sie brauchen...
664
13.5.4 Die Fabrik
666
13.5.5 Clippen
671
13.5.6 Eigenschaften ändern
673
13.5.7 Mehr Effekte
674
13.5.8 Was braucht der Effekt?
676
13.5.9 Hinter den Kulissen
677
13.6 3D-Programmierung mit Delphi und DirectX 8
682
13.6.1 Werkzeuge
683
Internet-Programmierung
708
14.1 Die Komponentenseite »Internet«
708
14.1.1 Allgemeines
708
14.1.2 Das Intranet
711
14.1.3 Computernetzwerke
713
14.1.4 IP-Adressen und Domain-Namen
718
14.1.5 Die Internetkomponenten
720
14.1.6 Verteilte Anwendungen
722
14.1.7 Webserver-Anwendungen
722
14.1.8 CGI-Webserver-Anwendungen
739
14.1.9 Antwortbotschaften generieren
744
14.1.10 Einbindung von Datenbank-Informationen
752
14.1.11 Socket-Anwendungen
757
14.2 Die Indy-Komponenten
771
14.2.1 Die drei Indy-Registerkarten: Clients, Server und Vermischtes
771
14.2.2 Erste Schritte mit Indy
780
14.2.3 TCP-Programmieren à la Indy
785
14.2.4 Netzwerk-Diagnose mit Hilfe von Servern (Projekte: IndyDiagServer, IndyEchoClient)
802
14.2.5 Weitere Diagnose-Instrumente: Ping, Traceroute, Finger und Whois
804
14.2.6 File Transfer Protocol (FTP)
813
14.2.7 Post im Internet (Projekt: IndyMail)
820
14.2.8 Hypertext Transfer Protocol (HTTP)
830
14.2.9 Komponenten für spezielle Bedürfnisse
843
Seifenoper – SOAP
852
15.1 Was ist WSDL?
854
15.2 Web Services in Delphi 6
855
15.3 Erzeugen eines SOAP-Clients
855
15.4 Entwickeln von SOAP-Servern
860
15.4.1 Das Interface des SOAP-Servers
862
15.4.2 Ein SOAP-Session-Manager-Client
868
15.5 Zusammenfassung
871
15.6 Quellen
872
Installation eigener Programme
874
16.1 InstallShield
874
16.1.1 Die »Demo«
876
16.1.2 Die Bedienung von InstallShield
877
16.2 Nützliche Verpackungen
879
16.2.1 Magnetisch, optisch, virtuell
879
16.2.2 »Zip« und Konsorten
880
16.2.3 Schrumpfen mit »UPX«
881
16.2.4 Installations-Martyrium
881
16.2.5 Schnippchen schlagen
882
16.2.6 Die Installation der Installation
884
16.2.7 Die dicke Ressource
885
16.2.8 »OneFile« muß konfiguriert werden
888
16.2.9 Der erste Versuch
889
16.2.10 »OneFile« im Detail
890
16.2.11 »Resource Workshop« eingebaut?
891
16.2.12 Möglichkeiten
892
Die Windows-Hilfe
894
17.1 Einführung
895
17.1.1 Steuercodes
898
17.1.2 Kunst in der Hilfe – Bitmaps verwenden
900
17.1.3 Heiße Punkte in der Bitmap – Die Hotspots
901
Stichwortverzeichnis
908
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.