Sie sind hier
E-Book

Delphi 6 in Team: Anwendungsentwicklung mit VCL und API

VerlagC & L Computer- und Literaturverlag GmbH
Erscheinungsjahr2001
Seitenanzahl920 Seiten
ISBN9783932311857
CD zum Buch1
FormatPDF
KopierschutzDRM
GerätePC/MAC/eReader/Tablet
Preis20,00 EUR

Herausgegeben von der Redaktion Toolbox
Delphi 6 in Team
Anwendungsentwicklung mit VCL und API


Delphi ist mit der Version 6 von einem reinen Windows-Entwicklungswerkzeug zu einem plattformübergreifenden Programmiertool geworden. Durch die neue Klassenbibliothek CLX wird die Cross-Plattform-Entwicklung für Windows und Linux entscheidend vereinfacht.

Dieses Buch wendet speziell an den Anwendungsentwickler, der mit der neuen Compilerversion arbeitet. Aus diesem Grund enthält dieses Buch ausführliche Kapitel zum Umgang mit Dateien, zur Multimedia-Programmierung auch mit DirectX, zum Einsatz der Internet-Komponenten inklusive des neuen Indy-Systems und zu SOAP. Als besondere Bonbons finden Sie unter anderem die jetzt aktualisierten und erweiterten Komponenten zur Drucker- und Schnittstellenansprache von Rainer Reusch und die Entwicklung eines Add-Ons für den InstallShield Express. Dort, wo es angebracht ist, gehen die Autoren auch auf Unterschiede zwischen der VCL und CLX ein. Weiterhin widmet sich ein Abschnitt den Grundlagen des komplett von Borland überarbeiteten, unzureichend dokumentierten und in Teilen nicht mehr zu früheren Delphi-Versionen kompatiblen Tools API, mit dem die Entwicklung von Experten ermöglicht wird.

Die Kapitel zur Komponentenentwicklung, zum Schreiben von DLLs, zu Konsolenprogrammen und zur Assemblerprogrammierung sind in diesem Buch nicht abgedruckt und wurden auf die CD-ROM ausgelagert. Sie sind für die erfolgreiche Anwendungsentwicklung nicht unbedingt notwendig, sollen aber als weiterführende Literatur zur Delphi-Programmierung den interessierten Lesern nicht vorenthalten werden.

Die Themen:

-- VCL und CLX
-- Dateibehandlung
-- Drucken
-- Prozeßverwaltung
-- Exception Handling
-- Multimedia
-- Internet und SOAP
-- Open Tools API

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

KAPITEL 3
Docking
(S. 137-138)

von Rainer Reusch

»Dockable Toolbars« und alles, was sich an ein Fenster kleben läßt, versteht Microsoft als neue Form der Benutzeroberfläche von Programmen, die dem Anwender einen gewissen Spielraum in der Gestaltung derselben bieten soll. Seit Delphi 4 beherrschen die meisten visuellen Komponenten dieses Feature. Anwendungen, die auf dem »Multiple Document Interface« (MDI) basieren, werden optisch gerne als altbacken angesehen. Windows wird immer bunter und das MDI als Mittel zur Aufteilung von Funktionsblöcken eines Programmes wirkt zu statisch. Man mag es als Spielerei ansehen, daß der Anwender in die Lage versetzt wird, die Anordnung und den Aufbau des Programms nach seinen Vorstellungen gestalten zu können. Bei kleinen, einfachen Programmen ist es zweifellos ein Gimmick. Bei größeren und komplexeren Anwendungen kann der Benutzer diese Freiheit durchaus angenehm empfinden. Schließlich darf er die für ihn wichtigen Funktionen an exponierter Stelle plazieren und andere völlig ausblenden. Bestes Beispiel ist die Entwicklungsumgebung von Delphi 6 selbst.

Das Konzept der »Dockable Tools« verlangt Erweiterungen auf zwei Ebenen. Auf der einen Seite müssen Dialogelemente um die Fähigkeit des »Dockings« erweitert werden, auf der anderen Seite muß es Fenster, beziehungsweise Teilbereiche davon geben, die solche Elemente aufnehmen und die damit verbundenen Eingriffsmöglichkeiten des Anwenders verarbeiten können. Aus diesem Grund wurden visuelle Komponenten wie TEdit, TMemo, TButton oder TImage um die Eigenschaften DragKind und DragMode erweitert. Hinzu gekommen sind natürlich noch ein paar Methoden und Ereignisse, die zur Laufzeit von Bedeutung sind.

Die Komponenten TPanel und TControlBar wurden ebenfalls um diese Eigenschaften erweitert. Sie dienen als Grundlage für eine Gruppe von Dialogelementen (beispielsweise eine Reihe von Speedbuttons), können aber auch wie der Client- Bereich eines Formulars als der Bereich deklariert werden, der die »Dockable Tools« aufnehmen und innerhalb dem der Anwender die Elemente nach seinen Vorstellungen anordnen kann. Die dafür zuständigen Eigenschaften heißen DockSite und UseDockManager.

Um vorweg darauf hin zu weisen: Obwohl es die Docking-Fähigkeiten seit Delphi 4 gibt, ist das Konzept immer noch nicht ausgereift! Wundern Sie sich daher nicht, wenn das Ganze manchmal ein wenig hakelig funktioniert. Es ist allerdings keineswegs so, daß man davon absolut abraten muß. Auf die kleinen Unzulänglichkeiten kommen wir im einzelnen zu sprechen.)

»Dockable Tools« im Schnellkurs

Das Formular, die Komponenten TControlBar und TPanel können als Container für »Dockable Tools« fungieren. Dazu muß nur die Eigenschaft DockSite auf True gesetzt werden.
Dialogelemente können zu einem einzelnen Fenster heraus gezogen werden und sind wieder andockbar, wenn ihre Eigenschaft DragKind auf dkDock gesetzt wird.
Das Setzen der Eigenschaft DragMode auf dmAutomatic bewirkt, daß das Dialogelement an jeder beliebigen Stelle angefaßt werden kann. Allerdings verliert es dadurch seine Mausbedienbarkeit.
Die Deklaration einer Behandlungsroutine für das Ereignis OnDockOver ermöglicht das Verhindern des Andokkens für bestimmte Dialogelemente. Mit den Methoden ManualDock und ManualFloat kann sich ein Element selbst andocken beziehungsweise zu einem Fenster umwandeln.

3.1 Die ersten Versuche

Eine dürftige Hilfestellung als Ersatz für gedruckte Handbücher gehört zum Trend der Zeit. Auch die integrierte Hilfe von Delphi war noch nie verdächtig für den Literaturnobelpreis. Was bleibt, ist, die bruchstückhaften Informationen der Hilfedateien zu verarbeiten und den Rest durch Experimente heraus zu finden. Beginnen wir mit einem neuen Projekt und einem noch leeren Formular. Darin wird ein (beliebiges) Dialogelement, zum Beispiel ein Memo-Feld, plaziert.

Inhaltsverzeichnis
Inhaltsverzeichnis6
Vorwort des Herausgebers16
Die VCL und CLX18
1.1 Ein Euro-Umrechner18
1.1.1 Umrechnungskurse und -regeln19
1.1.2 Logik und Oberfläche trennen21
1.1.3 Die Umrechnung implementieren22
1.1.4 Control-Gruppen wiederverwenden mit Frames24
1.1.5 Bilder aus Ressourcen laden29
1.1.6 Komponenten im Quelltext erzeugen32
1.1.7 Exkurs: Frames visuell bearbeiten35
1.1.8 Umgerechnete Beträge anzeigen36
1.1.9 Bessere Tastaturbedienung38
1.2 Portierung nach Linux39
Laufwerke, Verzeichnisse und Dateien42
2.1 Standarddialoge44
2.1.1 Der Standarddialog zum Öffnen von Dateien44
2.1.2 Der nächste Standarddialog – Dateien speichern unter51
2.1.3 TOpenPictureDialog, TSavePictureDialog52
2.2 Datei- und Laufwerkskomponenten (File, Directory, Drive, Filter)52
2.2.1 TDriveComboBox53
2.2.2 TDirectoryListBox57
2.2.3 TFileListBox62
2.2.4 TFilterComboBox63
2.3 Funktionen zum Bearbeiten und Verwalten von Laufwerken, Verzeichnissen und Dateien71
2.3.1 Laufwerke71
2.3.2 Verzeichnisse76
2.3.3 Dateien76
2.3.4 Arbeiten mit den Inhalten einer Datei88
2.3.5 Fehlerbehandlung107
2.3.6 Routinen für Textdateien108
2.4 Dateihandles und Dateivariablen109
2.5 Direkte API-Aufrufe112
2.6 Suchen von Dateien mit API-Funktionen – Vergleich mit den Delphi-Funktionen115
2.7 Rekursives Suchen im Dateibaum118
2.7.1 Rekursive Dateibearbeitung – Ein etwas aufwendigeres Beispielprojekt122
2.8 Diskussion der unterschiedlichen Funktionsgruppen133
2.9 Shell-Programmierung135
2.10 Des Rätsels Lösung136
Docking138
3.1 Die erstenVersuche139
3.2 Docking Manager140
3.3 Andocken unerwünscht143
3.4 Ein Konzept mit Schwachstellen144
TApplication, die etwas andere Komponente146
4.1 Das Fundament im Bauwerk147
4.2 Wozu TApplication?148
4.3 Die Eigenschaften151
4.3.1 Die wichtigsten Eigenschaften im Überblick152
4.4 Die Methoden155
4.4.1 Die wichtigsten Methoden im Überblick156
4.5 Ereignisse159
4.5.1 Die wichtigsten Ereignisse im Überblick160
4.6 TApplication im Griff161
4.7 Angriffsziel Projektdatei162
4.8 Das unsichtbare Programm163
4.9 Ein Programm für die Taskleiste164
4.10 Botschaften auf Irrwegen165
4.11 Läuft sie schon?168
4.12 Schongang170
4.13 Freiräume173
Exception Handling – Ausnahmebehandlung176
5.1 Syntax des Exception Handling in Delphi177
5.1.1 Der Stoff, aus dem die Ausnahmen gemacht sind181
5.1.2 Die Reihenfolge der Bearbeitung184
5.2 Spezifische Informationen über die Instanz der Ausnahme187
5.2.1 Die »Stapelabwicklung«188
5.2.2 Exit, Break, Continue190
5.2.3 »At« – eine Rarität196
5.3 Hilfsroutinen201
5.3.1 Assertions202
Ressourcen204
6.1 Der Resource Workshop206
6.1.1 Benutzerdefinierte Ressourcen208
6.2 Mehrsprachige Programme209
Die Registry212
7.1 Vor- und Nachteile213
7.2 Der Registrierungseditor215
7.2.1 Struktur der Registry216
7.2.2 Datentypen der Schlüsseleinträge222
7.2.3 Die Dateien »System.dat« und »User.dat«223
7.3 Registry-Funktionen in Win32224
7.3.1 Unicode- und ANSI-Format224
7.3.2 Verwendete Datenstrukturen225
7.3.3 Einige wichtige Win32-Funktionen226
7.4 Anwendungen und Beispiele230
7.4.1 Durchzuführende Eintragungen230
7.4.2 Dateinamenerweiterungen (Dateiextension)232
7.4.3 DDE-Verknüpfung mit dem Explorer238
7.4.4 Anwendungsverzeichnis243
7.4.5 Automatischer Programmstart244
7.5 Die Bibliothek »Registry.pas«246
7.5.1 Verfügbare Klassen246
7.5.2 Datenstrukturen246
7.5.3 Ausnahmebehandlung248
7.5.4 Die Klasse TRegistry249
7.5.5 Die Klasse TRegIniFile258
7.5.6 Die Klasse TRegistryIniFile260
Hooks266
8.1 Dynamic Link Libraries (DLLs)267
8.1.1 Statisches und dynamisches Einbinden268
8.1.2 Wohin mit der DLL?270
8.1.3 Fehlersuche in DLLs272
8.1.4 Erstellen von DLLs275
8.1.5 Fenster in DLLs278
8.1.6 Datenaustausch zwischen Anwendungen über DLLs281
8.2 Eingehakt : Hooks286
8.2.1 Die Parameter hmod und dwThreadId288
8.2.2 Die Callback-Funktion290
8.2.3 Auswerten der Parameter291
8.3 Endspurt293
Einführung in das Open ools API296
9.1 Hello World!299
9.2 Verwendung von Services302
9.3 Den Editor beeinflussen305
9.4 Notifiers309
9.5 Über die Experten hinaus...311
9.6 Übersicht: IOTAMessageServices312
9.7 Übersicht: IOTAActionServices315
9.8 Übersicht: IOTAPackageServices315
9.9 Übersicht: IOTAToDoServices316
9.10 Übersicht: IOTAWizardServices317
9.11 Übersicht: IOTAEditorServices318
9.12 Übersicht: IOTADebuggerServices319
9.12.1 Referenzen, Quellen und weitere nützliche Ressourcen320
Prozeßverwaltung322
10.1 Prozesse322
10.1.1 Kernel-Objekte325
10.1.2 Prozeßerzeugung326
10.1.3 Prozeßverwaltung332
10.2 Threads333
10.2.1 Threaderzeugung336
10.2.2 Threadverwaltung338
10.2.3 Stack eines Threads340
10.2.4 Deadlocks342
10.2.5 Prioritäten345
10.3 Synchronisation349
10.3.1 Kritische Bereiche354
10.3.2 Mutexe357
10.3.3 Semaphoren359
10.3.4 Ereignisse363
10.3.5 Named Pipes366
10.3.6 Verzögerung von Threads373
10.3.7 Synchrone Zähler375
10.3.8 Synchronisation in verteilten Anwendungen377
10.3.9 Beeinflussung anderer Prozesse377
10.4 Die Klasse TThread381
10.4.1 Eigenschaften (Properties)383
10.4.2 Methoden385
10.5 Synchronisation387
10.5.1 Die Klasse TCriticalSection387
10.5.2 Die Klasse TEvent387
10.5.3 Klasse TMultiReadExclusiveWriteSynchronizer388
10.5.4 Anmerkungen389
10.6 Entwurfsmuster389
10.7 Beispiele391
10.7.1 Beispiel 1: Lagersimulation391
10.8 Beispiel 2: Producer/Consumer393
10.9 Beispiel 3: Lagersimulation395
10.10 Beispiel 4: Interlocked-Zähler398
10.11 Beispiel 5: Supermarkt400
Drucken406
11.1 Die Unit Printers406
11.2 Dialoge für den Anwender412
11.3 Drucken mit Hindernissen414
11.4 Der Weg zur Unabhängigkeit415
11.5 Bis zum Äußersten417
11.6 Eine Komponente für die Druckerausgabe419
11.7 XPrint in der Praxis428
11.8 Offene Wünsche443
Die serielle Schnittstelle444
12.1 Der Anschluß, das Kabel444
12.2 Technische Betrachtungen450
12.3 Handshake453
12.4 Die Schnittstellen im PC454
12.5 Serielle Datenkommunikation mit dem Windows-API455
12.6 Ein Konfigurationsdialog470
12.7 Die serielle Schnittstelle als I/O-Port472
12.8 Praktische Beispiele474
12.9 Mit Komponenten wird alles einfach475
12.10 Ohne Zukunft?491
Multimedia492
13.1 MIDI-Sounds492
13.1.1 Aufbau der MIDI-Datei493
13.1.2 Die Channel-Events495
13.1.3 Die Krux mit der Zeitdifferenz495
13.1.4 Verfolgen des Abspielvorgangs499
13.1.5 Praxis500
13.1.6 Abspielung, Note für Note506
13.1.7 MIDI-Sequenzen aufnehmen, abspielen, speichern507
13.1.8 Der Datenstrom510
13.1.9 Normale Channel-Messages513
13.1.10 Daten als MIDI-Datei abspeichern517
13.2 Mit Wave-Dateien arbeiten524
13.2.1 Die Formate525
13.2.2 Wave-Dateien einlesen526
13.2.3 Gepackte Formate einlesen530
13.2.4 Wave-Aufnahmen abspeichern533
13.2.5 Sounds aufzeichnen538
13.2.6 Aufnehmen von CD-Audiotracks542
13.2.7 Sound gemixt546
13.2.8 Darstellung556
13.3 DirectX561
13.3.1 DirectSound561
13.3.2 DirectMusic603
13.4 DirectDraw636
13.4.1 Bilder im Fenstermodus637
13.4.2 Bilder im Vollbildmodus642
13.4.3 Direkt in das Video-RAM schreiben645
13.4.4 Frei schwebend: Overlays649
13.4.5 Aktion auf den Oberflächen655
13.5 Transformieren mit DirectX Media658
13.5.1 Transform-Units erzeugen660
13.5.2 Das leidige Release663
13.5.3 Was Sie brauchen...664
13.5.4 Die Fabrik666
13.5.5 Clippen671
13.5.6 Eigenschaften ändern673
13.5.7 Mehr Effekte674
13.5.8 Was braucht der Effekt?676
13.5.9 Hinter den Kulissen677
13.6 3D-Programmierung mit Delphi und DirectX 8682
13.6.1 Werkzeuge683
Internet-Programmierung708
14.1 Die Komponentenseite »Internet«708
14.1.1 Allgemeines708
14.1.2 Das Intranet711
14.1.3 Computernetzwerke713
14.1.4 IP-Adressen und Domain-Namen718
14.1.5 Die Internetkomponenten720
14.1.6 Verteilte Anwendungen722
14.1.7 Webserver-Anwendungen722
14.1.8 CGI-Webserver-Anwendungen739
14.1.9 Antwortbotschaften generieren744
14.1.10 Einbindung von Datenbank-Informationen752
14.1.11 Socket-Anwendungen757
14.2 Die Indy-Komponenten771
14.2.1 Die drei Indy-Registerkarten: Clients, Server und Vermischtes771
14.2.2 Erste Schritte mit Indy780
14.2.3 TCP-Programmieren à la Indy785
14.2.4 Netzwerk-Diagnose mit Hilfe von Servern (Projekte: IndyDiagServer, IndyEchoClient)802
14.2.5 Weitere Diagnose-Instrumente: Ping, Traceroute, Finger und Whois804
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ürfnisse843
Seifenoper – SOAP852
15.1 Was ist WSDL?854
15.2 Web Services in Delphi 6855
15.3 Erzeugen eines SOAP-Clients855
15.4 Entwickeln von SOAP-Servern860
15.4.1 Das Interface des SOAP-Servers862
15.4.2 Ein SOAP-Session-Manager-Client868
15.5 Zusammenfassung871
15.6 Quellen872
Installation eigener Programme874
16.1 InstallShield874
16.1.1 Die »Demo«876
16.1.2 Die Bedienung von InstallShield877
16.2 Nützliche Verpackungen879
16.2.1 Magnetisch, optisch, virtuell879
16.2.2 »Zip« und Konsorten880
16.2.3 Schrumpfen mit »UPX«881
16.2.4 Installations-Martyrium881
16.2.5 Schnippchen schlagen882
16.2.6 Die Installation der Installation884
16.2.7 Die dicke Ressource885
16.2.8 »OneFile« muß konfiguriert werden888
16.2.9 Der erste Versuch889
16.2.10 »OneFile« im Detail890
16.2.11 »Resource Workshop« eingebaut?891
16.2.12 Möglichkeiten892
Die Windows-Hilfe894
17.1 Einführung895
17.1.1 Steuercodes898
17.1.2 Kunst in der Hilfe – Bitmaps verwenden900
17.1.3 Heiße Punkte in der Bitmap – Die Hotspots901
Stichwortverzeichnis908

Weitere E-Books zum Thema: Sonstiges IT

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Home Networking

E-Book Home Networking
Format: PDF

Home Networking - das bedeutet die Verbindung der unterschiedlichsten im Haushalt vorhandenen elektronischen Geräte, sei es per Kabel oder drahtlos per Funk. Das beginnt meist mit der Vernetzung von…

Weitere Zeitschriften

Menschen. Inklusiv leben

Menschen. Inklusiv leben

MENSCHEN. das magazin informiert über Themen, die das Zusammenleben von Menschen in der Gesellschaft bestimmen -und dies konsequent aus Perspektive der Betroffenen. Die Menschen, um die es geht, ...

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

Deutsche Hockey Zeitung

Deutsche Hockey Zeitung

Informiert über das nationale und internationale Hockey. Die Deutsche Hockeyzeitung ist Ihr kompetenter Partner für Ihren Auftritt im Hockeymarkt. Sie ist die einzige bundesweite Hockeyzeitung ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...