Walter Doberenz Thomas Kowalski
Borland Delphi 5 Kochbuch
HANSER
Inhaltsverzeichnis 9
Inhaltsverzeichnis
Grundlagen 23 Rl ... die Projekteinstellungen für Formulare festlegen? 25
R2 ... eine MDI-Applikation erstellen? 31
R3 ... das Währungsformat ändern? 35
R4 ... das Datumsformat ändern? 38
R5 ... das Zeitformat ändern? 43
R6 ... den Debugger einsetzen? 46
R7 ...Meldungsfenster erzeugen? 51
R8 ... Werte mit einer InputBox eingeben? 54
R9 ... eine Konsolenanwendung einsetzen? 56
RIO ... eine Unit erstellen und anwenden? 59
RH ... mit Stringlisten arbeiten? 62
R12 ... ein dynamisches Array erzeugen? 66
R13 ... die Format-Funktion verstehen? 70
R14 ... Beträge formatieren und berechnen? 71
R15 ... mit Datums-/Zeitfunktionen arbeiten? 73
R16 ... auf Datum oder Zeit testen? 76
R17 ... Zeichen aus einem String entfernen? 78
R18 ... auf Groß-oder Kleinbuchstaben testen? 79
R19 ...auf gerade oder ungerade Werte prüfen? 79
R20 ...auf Ziffern prüfen? 80
R21 ... auf bestimmte Datentypen testen? 80
R22 ... Hilfsfunktionen ausprobieren? 81
R23 ... String und PChar unterscheiden? 84
R24 ... einen String in einzelne Wörter zerlegen? 86
R25 ... Wörter aus einem String filtern? 88
R26 ... Strings auf Ähnlichkeit vergleichen? 90
R27 ... Strings zerpflücken? 92
10 Inhaltsverzeichnis
R28 ...Termineingabenerleichtern? 97
R29 ... einen Wert auf Bit-Ebene manipulieren? 100
Oberfläche 107 R30 ... ein Formular automatisch zentrieren? 109
R31 ... ein Formular automatisch entfernen? 110
R32 ... ein Formular ohne Titelleiste erzeugen? 111
R33 ... ein Formular an oberster Position einblenden? 112
R34 ...einen Fensterhintergrand füllen? 113
R35 ... das Löschen des Form-Hintergrundes verhindern? 115
R36 ... ein Formular in der Taskleiste anzeigen? 115
R37 ... ein Fenster zur Laufzeit erzeugen? 117
R38 ... ein Toolwindow realisieren? 120
R39 ... ein Fenster auf Icongröße halten? 121
R40 ... die Titelleiste ausblenden? 122
R41 ... ein Info-Fenster beim Start anzeigen? 123
R42 ... ein MDI-Child simulieren? 125
R43 ... ein Formular skalieren? 126
R44 ... eine Anwendung beim Deaktivieren schließen? 128
R45 ... wichtige Standardkomponenten kennen lernen? 129
R46 ... Dezimalkomma in Dezimalpunkt umwandeln? 133
R47 ... den lästigen Piepton abstellen? 133
R48 ... Zahleneingaben überprüfen? 134
R49 ... ein einzelnes Zeichen eingeben? 137
R50 ... mit der Entertaste in das nächste Feld wechseln? 138
R51 ... die Zeilenzahl eines Memofeldes bestimmen? 139
R52 ... die Zeile/Spalte in Memofeldern bestimmen? 140
R53 ... das aktuelle Wort unter dem Cursor ermitteln? 141
R54 ... einen Zeilenumbruch erzwingen? 142
R55 ... eine Undo-Funktion realisieren? 143
R56 ... Ränder in Memofeldern setzen? 144
Inhaltsverzeichnis 11
R57 ... einen vergrößerten Textcursor realisieren? 145
R58 ... einen grafischen Textcursor realisieren? 147
R59 ... die Mauskoordinaten anzeigen? 148
R60 ... den Mausbereich verkleinern? 149
R61 ... den Mauscursor ausblenden? 150
R62 ... eigene Mauszeiger verwenden? 151
R63 ... auf Mausbewegungen reagieren? 154
R64 ... eine Menüleiste erstellen? 157
R65 ... ein PopUp-Menü erzeugen? 162
R66 ...Menüeinträge zur Laufzeit erzeugen? 164
R67 ... Grafiken in Menüpunkte einbinden? 166
R68 ... das Systemmenü verkleinern? 168
R69 ... das Systemmenü erweitern? 170
R70 ... Bildlaufleisten am Fensterrand positionieren? 171
R71 ... mit einem Schieberegler Werte einstellen? 173
R72 ... verknüpfte und rastende Schalter realisieren? 174
R73 ... Grafiken in Schaltflächen einsetzen? 177
R74 ... eine RadioGroup programmieren? 180
R75 ...den Anfangswert in einer Listbox setzen? 183
R76 ... die Zahl markierter Einträge einer Listbox ermitteln? 184
R77 ... die Existenz eines Listboxeintrags feststellen? 185
R78 ... in Listenfeldern suchen? 187
R79 ... Einträge in einer Listbox löschen? 189
R80 ... eine intelligente Combobox programmieren? 190
R81 ...mit der Gitter-Komponente arbeiten? 191
R82 ... zwei Gitter-Komponenten synchronisieren? 195
R83 ... verschiedene ListView-Ansichten verwenden? 197
R84 ... eine Uhr einblenden? 200
R85 ... DragDrop verstehen? 202
R86 ... DragDrop in der Anwendung realisieren? 206
R87 ... Komponenten zur Laufzeit verschieben? 208
12 Inhaltsverzeichnis
R88 ... Komponenten zwischen Fenstern verschieben? 209
R89 ... mit Aktionslisten arbeiten? 212
R90 ... Kollegen mit einem IQ-Tester ärgern? 216
R91 ... einen Schatten hinter Komponenten erzeugen? 217
R92 ... ein Textverarbeitungsprogramm schreiben? 219
Grafik 229 R93 ... zwischen PaintBox und Image unterscheiden? 231
R94 ... ein Testbild programmieren? 233
R95 ... eine 2D-Vektorgrafik rotieren? 239
R96 ... mit der ChartFX-Komponente arbeiten? 243
R97 ... die ImageList einsetzen? 247
R98 ... Grafiken in einem Listenfeld anzeigen? 248
R99 ... Grafiken in die Zwischenablage kopieren? 250
R100 ... einen Markierungsrahmen erzeugen? 252
R101 ... Bitmaps zur Laufzeit zuweisen? 254
R102 ... eine Bitmap-Ressourcendatei erstellen? 256
R103 ... JPEG-Grafiken als Ressourcen speichern? 259
R104 ... BMP in JPEG-Grafiken umwandeln? 262
R105 ... Informationen über BMP-Dateien gewinnen? 264
R106 ... eine RGB-Grafik manipulieren? 266
R107 ... die Scanline-Eigenschaft verwenden? 270
R108 ...Werte auf einfache Weise grafisch anzeigen? 281
R109 ... mit großen Grafiken arbeiten? 283
R110 ... gedrehten Text ausgeben? 289
Rl 11 ... einen Bildausschnitt scrollen? 291
Rl 12 ... Bitmaps manipulieren? 296
Rl 13 ... eine Lupenfunktion programmieren? 299
R114 ... Polygone zeichnen? 302
Rl 15 ... eine umrandete Fläche mit Farbe füllen? 304
R116 ... Grafiken auf dem Screen ausgeben? 305
Inhaltsverzeichnis 13
R117 ... eine Animation programmieren? 307
R118 ...ein Koordinatensystem erzeugen? 311
R119 ... Bezierkurven darstellen? 317
R120 ... Spezialeffekte erzeugen? 319
R121 ... verschiedene Stifte erzeugen? 321
R122 ... eine Bitmap drehen? 324
R123 ...im Formularkopf zeichnen? 326
R124 ... mehrzelligen Text ausgeben? 328
R125 ... einen Farbverlauf erzeugen? 330
R126 ...mit Paletten arbeiten? 333
R127 ... einen Desktop-Screenshot realisieren? 336
R128 ... einen Fenster-Screenshot realisieren? 339
Multimedia 343 R129 ... einen Multimedia-Timer programmieren? 345
R130 ... Zeitmessungen durchführen? 350
R131 ...einen Screensaver programmieren? 351
R132 ...einen Joystick abfragen? 356
R133 ... Testen, ob eine Soundkarte installiert ist? 368
R134 ... WAV-Dateien abspielen? 368
R135 ... Sound-Ressourcen in ein Programm einbinden? 370
R136 ... Sound-Dateien aufnehmen? 371
R137 ... AVI-Dateien anzeigen? 374
R138 ... die Ausgabefläche für AVIs anpassen? 375
R139 ...eine AVI-Komponente programmieren? 377
R140 ... AVI-Videos im Vollbildmodus abspielen? 383
R141 ... Hotspots realisieren? 384
R142 ...Hotspots auf Grafiken erzeugen? 386
R143 ... runde Fenster erzeugen? 388
R144 ... ein CD-Laufwerk sicher erkennen? 389
R145 ... ein Audio-CD-Laufwerk auswählen? 391
14 Inhaltsverzeichnis
R146 ... die Autorun-Funktion von CDs nutzen? 392
R147 ... Töne mit bestimmten Frequenzen ausgeben? 392
Dateien 395 R148 ... kontrollieren, ob eine Diskette eingelegt ist? 397
R149 ... eine Diskette kopieren? 398
R150 ... eine Diskette formatieren? 399
R151 ... den Laufwerkstyp bestimmen? 400
R152 ... Laufwerksinformationen ermitteln? 402
R153 ... testen, ob ein Verzeichnis existiert? 405
R154 ... ein Verzeichnis anlegen? 406
R155 ... Dateien suchen und ihre Attribute anzeigen? 407
R156 ... nach Dateien rekursiv suchen? 410
R157 ... einen Dateibetrachter realisieren? 413
R158 ... den freien Diskettenspeicher ermitteln? 416
R159 ... das Anwendungsverzeichnis bestimmen? 418
R160 ... einen Verzeichnisbaum darstellen? 419
R161 ... Dateien kopieren? 425
R162 ... Datei-Verknüpfungen nutzen? 428
R163 ... Änderungen in einem Verzeichnis überwachen? 430
R164 ... die Shellfunktionen zum Kopieren nutzen? 433
R165 ... eine Datei-Komponente entwickeln? 437
R166 ... eine ASCH-ANSI-Konvertierung realisieren? 448
R167 ... mit Memory Mapped Files arbeiten? 449
R168 ...einen eindeutigen TEMP-Dateinamen erzeugen? 453
R169 ... kurze Dateinamen ermitteln? 454
R170 ... Records in einem statischen Array speichern? 454
R171 ... Records in einer Datei speichern? 458
R172 ... einen Dateidialog realisieren? 461
R173 ...Dateinamen filtern? 465
R174 ... Records in einem Streamobjekt speichern? 467
Inhaltsverzeichnis 15
R175 ... Records dynamisch auf dem Heap speichern? 470
R176 ... Records in einem dynamischen Array speichern? 474
R177 ... typisierte Dateien als BDE-Ersatz verwenden? 477
R178 ... Variablenwerte in einem FileStream abspeichern? 484
Datenbank 489 R179 ... einen Alias erzeugen? 491
R180 ...auf den Alias verzichten? 493
R181 ... ein Datenbankpasswort vorgeben? 495
R182 ...eine Datenbank mit Passwort schützen? 497
R183 ... ein Datenmodul einsetzen? 500
R184 ...die Sortierreihenfolge einer Tabelle ändern? 502
R185 ... den DBNavigator einsparen? 504
R186 ... den Satzzeiger bewegen? 509
R187 ... die Spalteneigenschaften eines DBGrid ändern? 512
R188 ... eine DBGrid-Zelle markieren? 515
R189 ... die markierten DBGrid-Zeilen auswerten? 516
R190 ... eine Rechnungs-Eingabemaske programmieren? 518
R191 ... Lookup-Felder verwenden? 527
R192 ... Detaildaten anzeigen? 530
R193 ... in verknüpften Tabellen suchen? 533
R194 ... einen zufälligen Datensatz auswählen? 534
R195 ... hierarchische Datenstrukturen darstellen? 535
R196 ... Daten in einer Listview darstellen? 539
R197 ... die Datenbankstruktur bestimmen? 542
R198 ... die Feldgröße von Blob-Feldern bestimmen? 547
R199 ... eine RTF-Komponente an eine Datenbank binden? 548
R200 ... mit Grafiken aus Datenbanken arbeiten? 549
R201 ... Daten zwischen Records austauschen? 550
R202 ...die Tabellenstruktur kopieren? 550
R203 ...das Löschen von Datensätzen verhindern? 551
16 Inhaltsverzeichnis
R204 ... gelöschte dBASE-Records anzeigen? 551
R205 ... dBASE- und Paradox-Tabellen packen? 553
R206 ... den Hauptindex einer Tabelle ermitteln? 554
R207 ... einen Sekundärindex anlegen? 554
R208 ... Indizes rekonstruieren? 556
R209 ... Änderungen in die Datenbank schreiben? 556
R210 ... mit Transaktionen arbeiten? 557
R211 ... CachedUpdates verwenden? 559
R212 ... BDE-Callback-Funktionen verwenden? 561
R213 ... die DBLookupComboBox einsetzen? 564
R214 ...über DAO auf Access-Datenbanken zugreifen? 567
R215 ... Bound-Controls ohne BDE verwenden? 576
R216 ... eine DBCheckList programmieren? 579
SQL/ADO 583 R217 ...SQL-Anweisungen testen? 585
R218 ...mit der SELECT-Anweisung Daten abfragen? 592
R219 ... die WHERE-Klausel verwenden? 594
R220 ... die ORDER BY-Klausel einsetzen? 599
R221 ... mit UPDATE Tabellen manipulieren? 600
R222 ... mit DELETE Datensätze löschen? 601
R223 ...mit SQL-Anweisungen rechnen? 601
R224 ... Daten mit SQL gruppieren? 602
R225 ... Datums-/Zeitangaben in SQL-Strings einbauen? 604
R226 ... eine schreibgeschützte Query editieren? 606
R227 ...mit ADO auf Access-Datenbanken zugreifen? 608
R228 ...mit ADO auf Microsoft SQL-Server zugreifen? 611
R229 ... eine UDL-Datei einrichten? 614
R230 ... mit Shape-Befehlen arbeiten? 617
R231 ...den MS SQL-Server mit DMO verwalten? 620
R232 ... eine MS-SQL-Server-Datenbank erzeugen? 622
Inhaltsverzeichnis 17
Report 627 R233 ... die installierten Drucker ermitteln? 629
R234 ... alles über den Drucker erfahren? 630
R235 ... einen Drucker auswählen? 632
R236 ... eine Textdatei drucken? 634
R237 ... in Millimetern drucken? 637
R238 ... Pixel-/Vektorgrafiken drucken? 639
R239 ... einen Druckauftrag abbrechen? 641
R240 ... eine Druckausgabe ohne Quickreport realisieren? 642
R241 ... eine Druckvorschau realisieren? 647
R242 ... einen Bericht mit QuickReport anfertigen? 653
R243 ... eine Rechnung mit QuickReport ausdrucken? 656
R244 ... im Report einzelne Seitenzahlen unterdrücken? 659
R245 ... im Report linke und rechte Seiten drucken? 660
R246 ... im Report die Seitenzahl verändern? 660
R247 ... mehrere Reports verketten? 661
R248 ... im Report Zwischensummen berechnen? 662
R249 ...im Report Master-Detail-Beziehungen darstellen? 664
R250 ... einen mehrspaltigen Report erstellen? 666
R251 ... im Report einzelne Zeilen grau hinterlegen? 666
R252 ... im Report Daten nach Buchstaben gruppieren? 667
R253 ... eine eigene Druckvorschau realisieren? 668
R254 ... den Quickreport ohne Datenbank einsetzen? 672
R255 ... den Quickreport ohne Komponenten verwenden? 674
Objekte und Komponenten 677 R256 ...die Objektablage benutzen? 679
R257 ... eine einfache Klasse benutzen? 684
R258 ... Eigenschaften und Felder verstehen? 688
R259 ... Klassen und Objekte verstehen? 691
18 Inhaltsverzeichnis
R260 ... Konstruktor und Destruktor verwenden? 698
R261 ... Read-Only-Eigenschaften programmieren? 700
R262 ... Eigenschaften mit Zugriffsmethoden kapseln? 702
R263 ... Vererbung verstehen? 705
R264 ... private/öffentliche Formularmethoden verwenden? 712
R265 ... auf mehrere Formulare zugreifen? 715
R266 ... nach Komponenten suchen? 718
R267 ... den Besitzer einer Komponente ermitteln? 719
R268 ... Komponenten dynamisch erzeugen? 721
R269 ... eine Ereignisprozedur zur Laufzeit zuweisen? 725
R270 ... neue Komponenten entwickeln? 726
R271 ... datengebundene Komponenten programmieren? 733
R272 ... eine unsichtbare Komponente programmieren? 738
R273 ... eine grafische Komponente programmieren? 742
R274 ... eine Systemkomponente schreiben? 745
R275 ... eine Digitalanzeige programmieren? 752
R276 ... eine Farbauswahl-Komponente programmieren? 758
R277 ...zur Laufzeit alle Objekteigenschaften ermitteln? 762
OLE/DDE 765 R278 ... einen DDE-Server programmieren? 767
R279 ... einen DDE-Client programmieren? 770
R280 ... OLE-Automation mit Visio realisieren? 773
R281 ... OLE-Automation mit Excel realisieren? 776
R282 ... Word über OLE-Automation steuern? 781
R283 ... Wordformulare über OLE drucken? 784
R284 ... einen OLE-Server registrieren? 786
Peripherie/Internet 789 R285 ... mit der Zwischenablage arbeiten? 791
R286 ... Grafiken in die Zwischenablage kopieren? 793
Inhaltsverzeichnis 19
R287 ... den Fensterinhalt in die Zwischenablage kopieren? 795
R288 ... die Zwischenablage automatisch speichern? 797
R289 ... einen Internet-Link in mein Programm einbauen? 802
R290 ...einen WebBrowser programmieren? 802
R291 ... die NM-Internet-Komponenten einsetzen? 807
R292 ...eine Verbindung zum FTP-Server herstellen? 811
R293 ...ein FTP-Server-Verzeichnis auflisten lassen? 813
R294 ...den Speicherplatz auf dem FTP-Server anzeigen? 815
R295 ...eine Datei vom FTP-Server herunterladen? 818
R296 ...eine Datei auf den FTP-Server hochladen? 821
R297 ...eine Datei auf dem FTP-Server löschen? 822
R298 ... einen FTP-Client programmieren? 824
R299 ... auf MS-Mail-Funktionen zugreifen? 826
R300 ... Mailversand über OLE-Automation realisieren? 828
R301 ... die Netzwerkdialoge einbinden? 831
R302 ... die IP-Adresse des aktiven Computers ermitteln? 833
R303 ... ermitteln, ob eine Internet-Verbindung besteht? 834
R304 ...Daten ins HTML-Format exportieren? 835
R305 ... die serielle Schnittstelle programmieren? 839
System 845 R306 ... Threads verstehen? 847
R307 ... Windows-Botschaften verarbeiten? 852
R308 ... den Computer herunterfahren und neu starten? 855
R309 ... ein anderes Programm starten? 857
R310 ... Daten zwischen Prozessen austauschen? 862
R311 ...mit der Registrierdatenbank arbeiten? 868
R312 ...binäre Daten aus der Registrierdatenbank laden? 871
R313 ... die Systemkonfiguration ermitteln? 874
R314 ... das aktuelle Betriebssystem ermitteln? 878
R315 ... das CD-Laufwerk öffnen und schließen? 879
20 Inhaltsverzeichnis
R316 ...den Windows-Lizenznehmer ermitteln? 880
R317 ... die Seriennummer der Festplatte ermitteln? 882
R318 ... mich unter Windows-NT automatisch einloggen? 883
R319 ... den System-About-Dialog anzeigen? 885
R320 ...Schleifen mit der ESC-Taste abbrechen? 886
R321 ... eine laufende EXE-Datei löschen? 887
R322 ... eine Uninstall-Routine in das Programm einbauen? 887
R323 ...eine WEB-Adresse aus dem Programm aufrufen? 891
R324 ...den Status der CapsLock-Taste ändern? 894
R325 ... verhindern, dass Windows kritische Fehler anzeigt? 895
R326 ... eine Schriftart temporär installieren? 895
Desktop 897 R327 ... Anwendungen in die Systemsteuerung integrieren? 899
R328 ... ein Programm vor dem Taskmanager verstecken? 902
R329 ... die Taskbar Notification Area verwenden? 904
R330 ...Programmgruppenerzeugen? 908
R331 ... Shortcuts erzeugen? 910
R332 ... den Grafikmodus wechseln? 912
R333 ... auf Bildschirmeigenschaften zugreifen? 915
R334 ... testen, ob große oder kleine Fonts installiert sind? 917
R335 ... den Bildschirmschoner aktivieren/deaktivieren? 918
R336 ... DragDrop mit dem Explorer realisieren? 919
R337 ... System-Icons verwenden? 922
R338 ... die Desktop-Icons euv/ausblenden? 923
R339 ... eine Anwendung in die Registry einbinden? 924
R340 ... Control-Panel-Anwendungen aufrufen? 926
R341 ... den Windows-Desktop-Folder ermitteln? 928
Inhaltsverzeichnis 21
Wissenschaft/ Technik 931 R342 ... einen Wert schätzen? 933
R343 ... die Zeit auf eine viertel Stunde genau runden? 935
R344 ... Zeitdifferenzen ermitteln? 936
R345 ... Byte in KiloByte umrechnen? 938
R346 ...Zahlen konvertieren? 939
R347 ... eine Priifsumme erstellen? 941
R348 ... einen Text verschlüsseln? 944
R349 ... Werte mit Maßeinheiten anzeigen? 947
R350 ... einen Taschenrechner programmieren? 949
R351 ... Zahlen/Zeichenketten sortieren? 953
R352 ... in Arrays suchen? 959
R353 ... in einer Datei sortieren und suchen? 963
R354 ... die nummerische Integration verstehen? 966
R355 ... das Prinzip einer Schrittautomatik begreifen? 971
R356 ... eine nummerische Integration durchführen? 974
R357 ... mit komplexen Zahlen rechnen? 978
R358 ... komplexe Gleichungssysteme lösen? 984
R359 ... 3D-Vektorgrafiken erzeugen? 997
R360 ... Berechnungen in Datenbanken durchführen? 1006
Sonstiges 1017 R361 ... kontrollieren, ob Delphi aktiv ist? 1019
R362 ... einen mehrfachen Programmstart verhindern? 1020
R363 ...eine DLL programmieren? 1021
R364 ... eine DLL dynamisch einbinden? 1025
R365 ... Copyrightmeldungen in eine DLL integrieren? 1027
R366 ... eine Callback-Funktion schreiben? 1028
R367 ... eine Backup-Funktion schreiben? 1032
R368 ...Ressourceneinbinden? 1037
22 Inhaltsverzeichnis
R369 ... mehrsprachige Anwendungen entwickeln? 1042
R370 ... Systemzeit freigeben? 1046
R371 ... eine Pause realisieren? 1049
R372 ...den Quellcode versionsabhängig kompilieren? 1051
R373 ...eine konsistente Benutzerschnittstelle erstellen? 1052
R374 ... Programmeinstellungen automatisch speichern? 1055
R375 ... verschwundene Komponenten aufspüren? 1057
R376 ... ein Formular aus der DFM-Datei laden? 1057
R377 ... ein MS Access-Datenbankpasswort knacken? 1060
R378 ... eine HLP-Hilfedatei erzeugen? 1061
R379 ... eine HLP-Inhaltsdatei hinzufügen? 1068
R380 ... in einer HLP-Hilfedatei blättern? 1071
R381 ... eine HLP-Datei in Delphi einbinden? 1073
R382 ... ein HLP-Makro aufrufen? 1075
R383 ... Word-Dokumente in HLP-Dateien umwandeln? 1075
R384 ... eine Direkthilfe-Funktion realisieren? 1082
R385 ... HTML-Hilfedateien erstellen? 1083
R386 ... HTML-Hilfedateien einbinden? 1088
R387 ... mit InstallShield arbeiten? 1089
R388 ... ein Setup für Datenbankanwendungen erstellen? 1096
Anhang 1103 A Virtuelle Tastatur-Codes 1105
B ANSI-Tabelle 1107
C Inhaltsverzeichnis "Borland Delphi 5" 1109
Index 1125
Top Related