CAO Entwickler Doku - ACP Computer Aschersleben

Werbung
CAO-Faktura EntwicklerDoku
Version 1.3
Stand 04.10.2004
Der Einstieg in die Entwicklung mit Delphi 5 bis 7
Published under the „Free Documentation License“
by Daniel Pust and Axel Frankenberg
CAO-Faktura EntwicklerDoku
Seite 2
Autoren:
Copyright (c) by
•
Daniel Pust
alias Tom
•
Axel Frankenberg
alias lexa
Danke Sputzi, für Deine unendliche Geduld!
[email protected]
[email protected]
Lizenz und Nutzungsbestimmungen
Dieses Dokument ist Bestandteil des CAOProjektes und unterliegt vollständig der
GNU Free Documentation License.
Die Lizenz ist in einer deutschsprachigen Version im Anhang enthalten. Die
verbindliche, englischsprachige Originalversion ist auf der Webseite der
Free Software Foundation unter http://www.gnu.org/licenses/licenses.html#FDL
einsehbar.
Zusätzlich zur GNU FDL gelten die folgenden Bestimmungen:
Das CAO Projekt und deren Autoren und Programmierer übernehmen keine Gewähr
für die Funktionalität der Beschreibung bzw. deren Nutzen. Insbesondere übernehmen wir keinerlei Haftung für eventuelle, aus dem Gebrauch resultierende
Schäden oder Folgeschäden.
Die Nennung und Verwendung von Gebrauchsmustern, Handelsnamen, Warenbezeichnungen usw. berechtigt, auch ohne besondere Kennzeichnung, nicht zu der
Annahme, dass solche Namen im Sinne der Warenzeichen- und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt
werden dürften.
Wer in dieser Dokumentation Fehler oder Anlass zur Kritik findet, wende sich bitte
an einen der Autoren. Natürlich nehmen wir auch gern Anregungen und Verbesserungsvorschläge für Folgeversionen entgegen.
Das CAO Projekt bedankt sich bei allen Helfern für die aktive Unterstützung.
© 2003 by Daniel Pust, 2004 Lexa
Seite 2
CAO-Faktura EntwicklerDoku
Seite 3
Historie:
Wer
Wann
Version
Was
TOM
27.06.2003
1.0
Initial Release
TOM
06.07.2003
1.1
Erweiterung: XML / Projektpfad / Tabellen
TOM
05.08.2003
1.2
Erweiterung SynEdit / Bugfix CVS Server / Neue Konfiguration
LEXA
04.10.2004
1.3
Überarbeitung und Anpassung an den aktuellen Entwicklungsstand
CAO 1.2.5.x, Komponentenaktualisierung, Screenshots etc..
Portierung der Doku nach OpenOffice.org
© 2003 by Daniel Pust, 2004 Lexa
Seite 3
CAO-Faktura EntwicklerDoku
Seite 4
Inhalt
1. Vorwort....................................................... 5
6. Datenbankstruktur...................................32
1.1. Kompromisse...............................................5
7. Konfiguration von CAO-Faktura............ 33
1.2. Danksagungen............................................ 5
7.1. CAO Faktura Version 1.2.......................... 33
2. Sourcen und Vorbereitungen................... 6
7.1.1. Die Konfigurationsdatei..................... 35
2.1. Ein CAO Entwicklungssystem .................... 6
7.2. CAO Faktura Version 1.3.......................... 37
2.1.1. Tortoise CVS.......................................7
8. Compilieren der Quelle........................... 37
2.1.2. WinCVS...............................................7
8.1. Laden der Quelle.......................................37
2.1.3. Laden der Sourcen mit WinCVS......... 9
8.2. Die ersten Einstellungen............................37
2.1.4. Ohne CVS Zugang............................11
8.3. Compiler- und Linkereinstellungen............38
3. Delphi Komponenten.............................. 12
8.4. CAO compilieren und starten.................... 39
3.1. Vorbereitungen..........................................12
9. Geschafft. Was nun?...............................39
3.2. Installation..................................................14
9.1. Probleme? Fragen? Unklarheiten?........... 40
3.2.1. INDY 9...............................................14
9.2. Delphi Links...............................................40
3.2.2. Jedi VCL............................................14
9.2.1. Delphi Linkliste..................................40
3.2.3. ZeosDBO.......................................... 19
9.2.2. Empfehlungsliste...............................40
3.2.4. mpsDTAUS....................................... 21
9.2.3. Delphi für Anfänger........................... 41
3.2.5. TVolgaDBEdit....................................22
9.2.4. Deutsche Delphi-Foren..................... 41
3.2.6. ZipMaster VCL.................................. 22
9.3. Links für Datenbankentwickler.................. 41
3.2.7. CAO Komponenten...........................23
9.3.1. MySQL.............................................. 41
3.2.8. NewExDBGrid...................................24
9.3.2. PostgreSQL.......................................41
3.2.9. SynEdit..............................................25
9.3.3. SQL Tools......................................... 41
3.2.10. tvPlanit............................................ 25
9.3.4. SQL Foren.........................................41
3.3. MS XML 4: Unit erstellen...........................27
9.4. Sonstiges...................................................41
3.4. Komponenteninstallation beenden............ 28
9.4.1. CVS...................................................41
4. Der MySQL Server und Werkzeuge....... 30
10. Anhang................................................... 41
4.1. Das Werkzeug „MySQL-Front“..................30
10.1. Index........................................................41
4.2. Bearbeiten von Tabellen............................31
10.2. Abbildungen.............................................42
4.3. Probleme mit der „libmysql.dll”.................. 32
10.3. GNU Free Documentation License......... 42
5. Der PostgreSQL Server...........................32
10.4. Notizen.....................................................46
© 2003 by Daniel Pust, 2004 Lexa
Seite 4
CAO-Faktura EntwicklerDoku
Seite 5
1. Vorwort
Seit Anfang der 90-er Jahre wird das Warenwirtschaftssystem CAO-Faktura entwickelt und seit dem
Jahr 2003 stehen die GNU Sourcen des Programmes im Internet unter SourceForge
http://sourceforge.net/projects/CAO-Faktura/ zur Verfügung. Fast im Alleingang hat Jan P., der Initiator
und „Vater“ des Projektes, das Programm entwickelt und kontinuierlich verbessert. Gestartet ist
CAO-Faktura als DOS Programm für den eigenen Bedarf. Inzwischen ist das Programm zu einer
ausgewachsenen 32-Bit Windows Anwendung herangewachsen. Irgendwann entschloss sich Jan, die
Sourcen des Programmes jedermann zur Verfügung zu stellen, in der Hoffnung auf rege Unterstützung
aus der OpenSource Gemeinde. Dadurch wäre es den vielen Programmierern dieser Welt möglich, die
Weiterentwicklung aktiv zu unterstützen und Ideen zu verwirklichen, sowie das Programm
kontinuierlich auszubauen und dessen Funktionalität zu erweitern.
1.1. Kompromisse
Dass der Programmcode nicht vollständig freigegeben werden kann, liegt an diversen kommerziellen
Komponenten, die zur Erstellung einer uneingeschränkt lauffähigen CAO Version notwendig sind.
Viele interessierte Programmierer stören sich an diesem Umstand und bekunden mitunter heftig ihr
Unverständnis, was wir sehr schade und finden aber uns gegenüber nicht fair ist. Weder Jan, noch
das CAO Team, das sich inzwischen um ihn versammelt hat, können daran etwas ändern. Abhilfe
kann nur durch aktive Mitarbeit geschehen, wie es zum Teil schon demonstriert wurde, z.B. durch
uwewo, der eindrucksvoll die Einbindung des frei verfügbaren FreeReport als Ersatz für den
kommerziellen ReportBuilder vollzogen hat. Ein anderes Beispiel ist die Portierung von CAO auf
PostgreSQL, um der geänderten Lizenzpolitik der MySQL AB zu begegnen. Hier hat uns Elyot
umfangreiche Analysen und interessante Testberichte zur Verfügung gestellt.
Falls sich der geschätzte Leser die CAO Delphi-Sourcen besorgt hat, um eine eigene CAO Version
zu stricken, so müssen wir an dieser Stelle vor überzogenen Erwartungen warnen. Die frei verfügbaren
CAO Sourcen sind nicht dafür geeignet, weil sie aus den genannten Gründen nicht vollständig sein
können. Es steht jedoch jedem Entwickler frei, sich diese (teilweise recht teuren) Sourcen zu besorgen
um daraus sein eigenes CAO-Süppchen zu kochen. Besser wäre es aber, wenn die Sourcen dazu
genutzt würden, dem Programm neue Funktionen einzuhauchen und die Entwicklung zu unterstützen,
denn das ist die Idee, die Jan mit der Veröffentlichung des Quellcodes bezweckt hat es ist zudem
einfacher, effizienter und sinnvoller als jede Eigenbrötlerei.
Die frei verfügbaren Sourcen von CAO-Faktura ermöglichen jedem Delphi Programmierer, ein
lauffähiges CAO zu compilieren, auszutesten und zu erweitern, nicht mehr und nicht weniger. Dieses
Handbuch soll Dich auf dem Weg dorthin unterstützen.
Wenn eines Tages das CAO-Faktura und das Projekt von der Mitarbeit interessierter Entwickler,
Tester und anderer Helfer profitiert, hat sich die Freigabe des Quellcodes und das Schreiben dieses
Handbuches gelohnt. Bitte denke kurz darüber nach, bevor Du Dich in die Welt der Bits und Bytes von
CAO stürzt.
In diesem Sinne wünschen wir jedem CAO Entwickler und Hobby-Coder gutes Gelingen und stehen
bei Bedarf mit Rat und Tat zur Seite.
1.2. Danksagungen
Nach den einleitenden Worten möchten wir uns bei den CAO Usern bedanken, die uns im Forum
Hinweise auf Stolperfallen bei der Einrichtung der CAO Entwicklungsumgebung gegeben haben, z.B.
mmoellner (Misha aus Wien), und tomass, der sich als erster die Zeit genommen hat, die „Ur-Version“
dieser Doku auszuprobieren.
Außerdem ein Danke den Helfern im Forum, die uns und den CAO Anwendern mit Rat und Tat zur
Seite stehen und uns durch ihre Arbeit den Freiraum geben, den wir zur Entwicklung von CAO-Faktura
und zur Organisation des Projekts benötigen, z.B. Elyot, Eddi-t, jens-streubel, back.to.roots, Fstruwe,
Josef Sterk, g-audio usw.
© 2003 by Daniel Pust, 2004 Lexa
Seite 5
CAO-Faktura EntwicklerDoku
Seite 6
Bitte seht es uns nach, wenn die Aufzählung nicht vollständig ist. Wir treffen euch fast täglich im
Forum. Ihr wisst sicher, wer gemeint ist 
2. Sourcen und Vorbereitungen
2.1. Ein CAO Entwicklungssystem 1
Die vorliegende Dokumentation wurde unter Verwendung verschiedener Systemkonstellationen
erarbeitet und getestet. Angegebene Versionsnummern sollen als Anhaltspunkt zur Überprüfung der
Voraussetzungen dienen und sind nicht verbindlich bzw. gelten teilweise als Mindestanforderung. Die
allgemein als „fortschrittlich“ angenommene Regel, immer nur die aktuellsten Versionen zu verwenden,
kann sich bei der Entwicklung von umfangreichen Programmen wie CAO genau in das Gegenteil
verkehren. Um also Komplikationen von vorn herein aus dem Weg zu gehen, empfehlen wir unbedingt
die Verwendung der hier vorgeschlagenen Versionen der Komponenten. Echte Versionssprünge
innerhalb dieser, z.B. Jedi 2.x auf Version 3.x Beta verbieten sich von selbst.
Sofern Patches für die verwendeten Komponenten verfügbar sind, vor allem Sicherheitsupdates, sind
diese natürlich Pflicht. Das gilt selbstredend auch für Delphi. Wir kommen an gegebener Stelle darauf
zurück.
•
Windows 2000 mit SP3 oder SP4, Windows XP mit SP1 oder SP2
•
Borland Delphi 5, 6 oder 7 Professional und Tortoise CVS oder WinCVS 1.3b (mit Python
2.3 für Makros)
•
MySQL Server, empfohlene Mindest-Version 3.23.55 f. Linux oder Windows
•
CAO-GNU Code Version 1.2.5.x
•
aktuelle Komponenten der CAO GNU Version (CVS oder Tarball bzw. Sourceforge)
•
ZeosDBO Komponenten Version 5.4.1-JP (JP steht für die von Jan modifizierte Version)
•
TZipMaster VCL Version 1.70
•
TVolgaDBEdit vom 13.01.2003
•
TExDBGrid Version 3.9-JP
•
JEDI-VCL Version 2.10
•
mpsDTAUS Version 1.1
•
SynEdit Version 1.1
•
Internet Komponenten INDY Version 9 (Ver. 8, enthalten in Delphi 6, ist nicht geeignet!)
Ziel dieser Dokumentation ist es, einen PC, auf dem ein von CAO-Faktura unterstütztes Betriebssystem (Windows NT, 2000 oder XP) und Delphi installiert sind, für die Mit- bzw. Weiterentwicklung
des Programm CAO-Faktura einzurichten. Später gehen wir noch auf die allgemeine Konfiguration und
erste Inbetriebnahme von CAO-Faktura ein.
Eine ausführliche und unregelmäßig überarbeitete Bedienungsanleitung für CAO-Faktura steht als
Handbuch zur Verfügung. Weitere Hilfe findet man in der FAQ von „Mac“, die gleichzeitig als
kontextsensitive Hilfe in das Programm eingebunden wurde. Nicht zu vergessen: das Forum, in dem
nach dem Motto „User helfen Usern“ Lösungen zu einzelnen Problemen zu finden sind. An weiteren
Möglichkeiten arbeiten wir. Derzeit entsteht z.B. ein Wiki, eine online FAQ, ein Chatbereich usw.
Welches sich davon am besten bewährt und von den Usern angenommen wird, wird sich noch zeigen
müssen. Wir wünschen uns jedenfalls eine rege Teilnahme in jedem Diskussionsbereich, die nicht nur
der Lösung eigener Probleme dient.
Die wichtigste Informationsquelle für Fragen ist und bleibt jedoch das Forum auf www.cao-wawi.de.
Dort gibt es spezielle Entwicklerboards, in denen sich Programmierer treffen und diskutieren können.
1
Unverbindliche Empfehlung. Eine Übersicht der Komponenten und Downloadquellen wird in Kapitel 2.1.3 aufgeführt.
© 2003 by Daniel Pust, 2004 Lexa
Seite 6
CAO-Faktura EntwicklerDoku
Seite 7
Als Grundvoraussetzung für das Compilieren des CAO Quellcodes benötigen wir einen Windows PC
mit installiertem Delphi Compiler der Versionen 5, 6 oder 7. Es kann, abhängig von der Entwicklungsumgebung (Delphi Version), kleine Unterschiede bei der Beschreibung der Vorgänge kommen, die
jedoch einen ernsthaften Entwickler nicht vor unlösbare Probleme stellen sollte. Wer bereits an diesen
Punkt scheitert, dem wird das Arbeiten am Quellcode von CAO wahrscheinlich keine Freude bereiten.
In den Entwicklerboards des CAO Forums versuchen wir dennoch, im Rahmen unserer
Möglichkeiten Hilfestellung zu geben.
2.1.1. Tortoise CVS
[ Platzhalter ]
2.1.2. WinCVS
Der aktuelle Sourcecode liegt naturgemäß im CVS. Ein anonymer Zugang ist derzeit leider nicht
möglich. Wer weitere Informationen dazu sucht, möge sich im Forum informieren. Einen
personalisierten Lesezugriff erhält man unkompliziert auf Anfrage, wenn ein Anflug der Bereitschaft zur
Kooperation und Mitarbeit am Projekt erkennbar ist. Wer keinen CVS Zugang hat, kann dieses Kapitel
getrost überspringen oder fragt beim CAO Team nach einem Zugang an. Auf die Möglichkeit, sich den
Quellcode auf andere Weise zu beschaffen, kommen wir in Kapitel 2.1.4 zurück.
Zunächst besorgen wir uns von www.wincvs.org das Programm WinCVS in der Version 1.3b, das trotz
des Beta-Stadiums sehr brauchbar und stabil ist, und installieren es mit der Windows typischen Setup
Routine. Um in den Genuß der mitgelieferten Admin-Makros zu kommen, ist es erforderlich, vor der
Installation von WinCVS das Paket Python 2.3 für Windows zu installieren.
Für die Zwischenlagerung der Delphi-Sourcen aus dem CVS erstellen wir einen lokalen Ordner,
beispielsweise C:\projekte.
Unter Admin  Preferences nehmen wir in WinCVS folgende Einstellungen vor:
Abbildung 1 - Einstellungen für den CVS Server
© 2003 by Daniel Pust, 2004 Lexa
Seite 7
CAO-Faktura EntwicklerDoku
Seite 8
Abbildung 2 - Optimieren der Übertragung
Abbildung 3 - Proxy definieren, wenn nötig
© 2003 by Daniel Pust, 2004 Lexa
Seite 8
CAO-Faktura EntwicklerDoku
Seite 9
Abbildung 4 - Editor und Passwortdatei
2.1.3. Laden der Sourcen mit WinCVS
Zum Laden der Sourcen aus dem CVS melden wir uns am Server an, also Menü: Admin  Logon
Falls wir einen personalisierten Zugang zum CVS haben, müssen wir in einem entsprechenden Dialog
das erteilte Passwort eingeben. Für einen anonymen Zugang, der nicht immer gewährleistet werden
kann, bleibt das Passwort leer. Wir bestätigen den Dialog mit OK. Unter Create  Checkout Modules
öffnet sich folgender Dialog:
Unter Local folder to checkout to tragen wir den zuvor angelegten Pfad ein und bestätigen den
Dialog mit OK.
© 2003 by Daniel Pust, 2004 Lexa
Seite 9
CAO-Faktura EntwicklerDoku
Seite 10
Abbildung 5 - Erfolgreicher Login und Checkout
Wenn bis jetzt alle Aktionen erfolgreich waren, sehen wir die obige Ausgabe im WinCVS Log-Fenster.
Wichtig ist die Quittierung mit exited normally with code 0. Sollte dort code 1 oder anderes
(ungleich 0) stehen, ist etwas an den Login Einstellungen falsch und muss korrigiert werden.
Nun werden die Sourcen aus dem Repository des CVS Servers geladen und im lokalen Ordner
gespeichert. Da sich im CVS-Ordner nur die Komponenten befinden, in deren Sourcen Änderungen zu
Anpassung an CAO-Faktura vorgenommen wurden, müssen wir uns fehlende Pakete und Patches
aus dem Web besorgen. Vergleiche dazu auch Kapitel 2.1
Externe Komponenten:
•
Jedi VCL 2.10
jvcl.sourceforge.net/
•
JVCL210FIX030313
Update für Fehler in JvComputerInfo.pas
•
TZipMaster VCL 1.70
www.cao-wawi.de/cao/zmstr170.zip
•
TvolgaDBEdit vom 13.01.2003
www.cao-wawi.de/cao/volgapack_de.zip
•
mpsDTAUS 1.1
www.mpscologne.de/de/downloads.htm
•
SynEdit 1.1
synedit.sourceforge.net/
•
MS_XML_40_SP2.zip
Update für MS-XML (nur für Shoptransfer)
Im Source enthaltene bzw. modifizierte Komponenten:
•
Display
© 2003 by Daniel Pust, 2004 Lexa
Kassendisplaysteuerung
Seite 10
CAO-Faktura EntwicklerDoku
Seite 11
•
NewExDBGrid_3.9 JP
Listendarstellung
•
tvPlanit
Terminplaner
•
zeosdbo-5.4.1
Datenbank Komponente
Weitere Komponenten:
•
btJvxRichPopup.pas
[...]
•
CaoDBGrid.pas
Listendarstellung
•
CaoGroupBox.pas
[...]
•
CaoMultiLang.pas
[...]
•
CaoSecurity.pas
[...]
•
email32.pas
[...]
•
SortGrid.pas
minimal angepasste Unit zur wechselfarbigen
Darstellung von Zeilen, original Bestandteil der
TZipMaster VCL Komponente
•
XPMenu.pas
Menüdarstellung im WinXP Stil
•
EuroDMEdit
wird nicht mehr benötigt
•
Historyc
wird nicht mehr benötigt
Soweit vorhanden, verwenden wir ausschließlich jene Komponenten, die im Source Download
enthalten sind, da diese - wie schon erwähnt - speziell an CAO angepasst sind. Diese Sammlungen
befinden sich in entsprechenden separaten Unterordnern des Ordners Komponenten. Veraltete
Komponenten, wie z.B. EuroDMEdit und Historyc sind dort aus historischen Gründen ebenfalls
enthalten, werden aber für das aktuelle CAO nicht mehr benötigt und müssen nicht installiert werden.
Optimierung der CAO Komponenten
Momentan werden die CAO Komponenten etwas ungeordnet in Delphi eingebunden. Wir hatten bisher
keine Veranlassung dies besser zu organisieren2. Wenn man die Komponenten installiert wie geliefert,
erscheinen sie in der Komponentenleiste unter verschiedenen Namen. Das ist nicht weiter tragisch,
aber etwas konfus, speziell für Einsteiger. Deshalb bietet es sich an, die Registrierungsprozedur der
CAO-Komponenten zu vereinheitlichen, damit sie leichter aufzufinden sind. Dazu öffnet man
nacheinander jede der CAO Komponenten und ändert vor dem Installieren den folgenden Abschnitt:
procedure Register;
begin
RegisterComponents('JP-SOFT', [TCaoGroupBox]);
end;
Dort ist als Name jeweils „CAO-Faktura“ einzutragen, im obigen Beispiel also an die Stelle, wo derzeit
„JP-Soft“ steht. Das Ergebnis ist eine Komponentenleiste, in der jeder einzelne CAO-Part unter
„CAO-Faktura“ integriert ist.
Ausnahme:
Da das SortGrid als Bestandteil der ZipMaster Komponente eingebunden wird, werden wir die dort
eingetragene Bezeichnung nicht ersetzen.
2.1.4. Ohne CVS Zugang
Falls uns das CVS Repository aus den angeführten oder anderen Gründen nicht zur Verfügung steht,
laden wir uns entweder aus dem Downloadbereich von www.cao-wawi.de den Quellcode als ZIP-Datei
herunter oder versuchen es mit dem Tarball, der auf SourceForge angeboten wird. Oft sind dies
jedoch nicht die aktuellsten Versionen, denn sie werden unregelmäßig als Snapshot aus dem CVS
generiert.
2
Wer sich dazu berufen fühlt, darf gerne ein vereinheitlichtes Package bauen und Einsteigern zur Verfügung stellen
© 2003 by Daniel Pust, 2004 Lexa
Seite 11
CAO-Faktura EntwicklerDoku
Seite 12
3. Delphi Komponenten
3.1. Vorbereitungen
Falls noch nicht geschehen, führt der erste Weg auf die Internetseite von Borland. Dort besorgen wir
uns die für Delphi erhältlichen Updates. Für Delphi 6 gibt es zum aktuellen Zeitpunkt drei Pakete.
Diese werden nach der Installationsvorgabe eingespielt:
1. Delphi 6 Update Pack 2
2. Delphi 6 RTL (Runtime Library) Update Pack 2
3. Delphi 6 RTL Update Pack 3
Für die Delphi Versionen 5 und 7 gilt entsprechendes.
Nun werden wir sämtliche Komponenten in eigene Ordner entpacken, dann geht die Installation im
Delphi leichter von der Hand. Im folgenden kann es passieren, dass die Begriffe „Komponente“ und
„Package“ verwendet werden. Bitte nicht verwirren lassen, es läuft meist auf dasselbe hinaus.
Im Delphi Lib-Verzeichnis C:\Programme\Borland\Delphi6\Lib legen wir beispielsweise den Ordner
ZeosDB an und kopieren den Inhalt der Sourcen unter cao\komponenten\zeosdbo dort hin. Die
weiteren Komponenten werden ebenfalls in entsprechende Pfade kopiert. Zur Verdeutlichung folgt im
Anschluss eine Darstellung des Delphi Lib-Ordners im Windows Explorer.
Die für CAO angelegten Komponenten-Verzeichnisse sind blau unterstrichen.
© 2003 by Daniel Pust, 2004 Lexa
Seite 12
CAO-Faktura EntwicklerDoku
Seite 13
Abbildung 6 - Verzeichnisse der CAO Komponenten
Damit es übersichtlicher ist, wurde hier der Verzeichnis-Baum in zwei Hälften getrennt und nebeneinander dargestellt. Nun haben wir alle Vorbereitungen getroffen und beginnen im folgenden Kapitel
mit der Installation.
© 2003 by Daniel Pust, 2004 Lexa
Seite 13
CAO-Faktura EntwicklerDoku
Seite 14
3.2. Installation
3.2.1. INDY 9
Bevor wir beginnen, ist sicher zu stellen, dass sich keine veraltete Jedi Version im Delphi befindet.
Gegebenenfalls muss eine solche zunächst de-installiert oder de-aktiviert werden. Mit den INDY
Komponenten der Version 8, die standardmäßig in Delphi 6 enthalten sind, würden wir Fehler erhalten.
Die Sourcen haben wir bereits in den Delphi Lib Ordner entpackt:
G:\Programme\Borland\Delphi6\Lib\INDY9\Source
Es gibt nun zwei Möglichkeiten das Package zu compilieren und zu installieren, manuell oder
automatisch. Beide funktionieren problemlos mit Delphi 6 und 7, deshalb beschränken wir uns auf die
automatisierte Methode mittels Compiler-Script, die Delphi IDE muss dafür nicht gestartet sein. Wir
starten dazu das Script INDY9\Source\Fulld6.bat bzw. das für die Delphi Version passende Script,
z.B. Fulld7.bat 3
In dem neuen Ordner INDY9\D6 finden wir die compilierten Units, den Pfad $(DELPHI)\Lib\INDY9\D6
tragen wir in die Delphi Umgebung ein. Die Umgebung wird bekanntlich konfiguriert unter
Tools  Umgebungsoptionen  Bibliothekspfad
Nun öffnen wir das Entwurfs-Package .\INDY9\D6\DclIndy60.bpl über Komponente  Packages
installieren und binden es auf diese Weise in Delphi ein, compiliert haben wir es bereits im vorigen
Schritt.
Zum Abschluss der Installation müssen wir noch den Bibliothekspfad $(DELPHI)\Lib\INDY9\Source
hinzufügen, wiederum in den Umgebungsoptionen wie oben beschrieben.
Abbildung 7 - Indy 9 installiert
3.2.2. Jedi VCL
Wir kommen nun zum spannendsten Kapitel der Komponenten Installation. Die Spannung baut sich im
Verlauf der Installation auf. Wir werden versuchen, diese Spannung auf ein Minimum zu begrenzen
und ein wenig ins Detail gehen und auf eventuelle Probleme hinweisen.
Anpassungen
Die JediVCL enthält Installationstools, z.B. befindet sich im Ordner .\Jedi eine install.bat, mit der das
Installieren ein Kinderspiel sein sollte. Manchmal stellt sich jedoch heraus, dass dem nicht so ist.
Bevor wir nun richtig beginnen, erfordert die Jedi noch das Einspielen eines Sicherheitspatches und
eines kleinen Bugfixes für CAO, der im Artikel http://www.cao-wawi.de/board/viewtopic.php?t=20 in
unserem Forum beschrieben ist. Aber der Reihe nach:
3
Bitte nicht das Script Fullc6.bat, starten, die Fullc Scripte sind für den C++Builder gedacht.
© 2003 by Daniel Pust, 2004 Lexa
Seite 14
CAO-Faktura EntwicklerDoku
Seite 15
Zunächst erstellen wir von der Datei .\Lib\JEDI\jvcl\source\JvComputerInfo.pas eine
Sicherheitskopie, indem wir sie beispielsweise nach JvComputerInfo_old.pas umbenennen. An
deren Stelle kopieren wir die im Sicherheitsupdate JVCL210FIX030313.zip enthaltene Datei.
Nun editieren wir eine Routine in der Datei .\Lib\JEDI\jvcl\source\JvCurrEdit.pas, da diese einen Bug
enthält, der sich in CAO bemerkbar macht. Wir erstellen eine Sicherheitskopie und öffnen die Datei in
Delphi oder einem Text-Editor, um die Korrektur vorzunehmen. Der Code der Procedure
TJvCustomNumEdit.WMPaint (ziemlich am Ende der UNIT, Zeile 903) ist betroffen:
Originalcode:
procedure TJvCustomNumEdit.WMPaint(var Msg: TWMPaint);
var
S: string;
begin
inherited;
if PopupVisible then
S := TJvPopupWindow(FPopup).GetPopupText
else
S := GetDisplayText;
{ if not PaintComboEdit(Self, S, FAlignment, FFocused
and not PopupVisible, FCanvas, Msg) then inherited;}
end;
korrigierter Code:
procedure TJvCustomNumEdit.WMPaint(var Msg: TWMPaint);
var
S: string;
begin
if PopupVisible then
S := TJvPopupWindow(FPopup).GetPopupText
else
S := GetDisplayText;
if not PaintComboEdit(Self, S, FAlignment, FFocused
and not PopupVisible, FCanvas, Msg) then inherited;
end;
Jetzt beginnt die eigentliche Installation der JEDI Komponenten durch Start der Datei:
\Delphi6\Lib\JEDI\install.bat
Wenn alles gut geht, war es das. Herzlichen Glückwunsch. Wenn nicht, dann bitte weiterlesen:
Der Verweis auf das Delphi auf BPL Verzeichnis
Der
Delphi
Standardpfad
enthält
einen
Verweis
auf
das
BPL
Verzeichnis
\Borland\Delphi6\Projects\Bpl. Wenn der Jedi Installer das nicht erkennt, wurde Delphi noch nie
gestartet, also: Installer beenden, Delphi starten+beenden, Installer wiederum starten.
Bei diversen Installationsversuchen kam es trotzdem wiederholt zu Fehlern, auch mit anderen Delphi
Versionen, z.B. Delphi 7 Personal. Die Installation bei Delphi 6 hat u.U. Fehler bei JVCL200_D60.dpk
und JVCL200_R60.dpk hervorgebracht.
Hier half teilweise das mehrfache manuelle Bereinigen der Pfade und Löschen der nicht fertig
installierten Komponenten. Aber auch eine kleine Fehlinformation im Forum könnte die Ursache sein,
denn dort wurde aus Versehen im Bugfix für TJvCustomNumEdit.WMPaint ein fehlerhafter
Parameter angegeben:
© 2003 by Daniel Pust, 2004 Lexa
Seite 15
CAO-Faktura EntwicklerDoku
Seite 16
Falsch:
... and not PopupVisible, FCanvas, Message)
Richtig:
... and not PopupVisible, FCanvas, Msg)
Fehler mit Delphi 7 bei „JVCL200_D70.dpk“
Hier half es oft, das Package manuell zu installieren (compilieren, installieren). Zwar friert Delphi dabei
manchmal ein (über den Task Manager beenden), danach lief aber kurioserweise die install.bat
fehlerfrei durch. Wer das erklären kann, möge sich melden.
Einzelnen Berichten zufolge hat u.U. auch das manuelle Bereinigen der Windows Registry Abhilfe
gebracht. Vermutlich ist das immer dann der Fall, wenn verschiedene Delphi Versionen installiert sind
bzw. waren oder ersetzt wurden, oder wenn man unter verschiedenen Windows Benutzerkonten
arbeitet usw. Eigentlich braucht man niemals die Registry zu bemühen, die Werkzeuge innerhalb der
Delphi IDE genügen im Regelfall vollkommen aus.
Ausgabeverzeichnisse und sonstige Pfade
Desweiteren ist auch die Überprüfung der BPL- bzw. DCP-Ausgabeverzeichnisse angeraten.
Zum Abschluss noch der Tip, dass sich oft auch ein Blick in den Windows-Pfad lohnt. Arbeitsplatz 
Eigenschaften  Erweitert  Umgebungsoptionen  Path. Die korrekten Delphi Bin und BPL Pfade
müssen dort enthalten sein. Beim De-Installieren einer Delphi Vorgängerversion werden diese
möglicherweise nicht bereinigt, so dass u.U. der falsche make Befehl zum Einsatz kommt oder dass
Dateien, die ganz offensichtlich vorhanden sind, von Delphi nicht gefunden werden.
Abbildung 8 - Fehlerhafter Windows Pfad: Delphi findet nichts
In einem solchen Fall bitte die Windows Suchpfade überprüfen:
© 2003 by Daniel Pust, 2004 Lexa
Seite 16
CAO-Faktura EntwicklerDoku
Seite 17
Abbildung 9 - Windows Pfade prüfen bzw. anpassen
Der Windows PATH für Delphi
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\Programme\Borland\DelphiX\Bin;C:\Programme\Borland\DelphiX\Projects\Bpl
...wobei das X für die Delphiversion steht, beispielsweise Delphi6.
Nach der Umstellung des Windows Suchpfades muss man sich von Windows mindestens ab- und
wieder anmelden, da Windows (zumindest Windows 2000) diese homöopathisch geringe Änderung an
der Systemumgebung nicht „live“ verarbeiten kann.
© 2003 by Daniel Pust, 2004 Lexa
Seite 17
CAO-Faktura EntwicklerDoku
Seite 18
Abbildung 10 - Jedi Pfade
Nun sollte die Jedi installiert sein. In den Delphi Umgebungsoptionen wurden vom Installer die
Lib\JEDI\... Bibliothekspfade eingetragen. Nun prüfen wir kurz die installierten Packages:
Abbildung 11 - Die Jedi im Delphi
In der Komponentenleiste stellt es sich anschließend wie folgt dar:
Abbildung 12 - Die Jedi in der Komponentenleiste
© 2003 by Daniel Pust, 2004 Lexa
Seite 18
CAO-Faktura EntwicklerDoku
Seite 19
3.2.3. ZeosDBO
Jetzt werden wir die ZeosDBO Komponenten für den Datenbankzugriff installieren, die in CAO-Faktura
eine zentrale Rolle für die Anbindung an die Datenbank haben. Wir beschränken uns hier auf die
Installation der MySQL Komponenten, auch wenn ZeosDB einiges mehr zu bieten hat. Wer sich
eingehender mit der Materie beschäftigen möchte, sei auf die originale Dokumentation verwiesen.
Als erstes werden wir die Datei libmysql.dll aus dem Ordner, in den wir die Komponenten entpackt
haben, in libmysql.old umbenennen. Siehe hierzu auch das Kapitel 4.3.
An der Datei zeos.inc fummeln wir nicht herum, dort sollte alles richtig eingestellt sein. Wir starten
Delphi und fügen die Verzeichnisse dem Bibliotheksverzeichnis hinzu, Tools  Umgebungsoptionen
 Bibliothek:
Bei Bibliothekspfad clicken wir den Button mit den drei Punkten an, es öffnet sich ein weiterer Dialog
in welchem wir den Pfad einstellen. Auch hier clicken wir auf die drei Punkte. Es öffnet sich noch ein
Dialog, in dem der Pfad auszuwählen ist. Nach Auswählen und Bestätigen steht der Pfad im
Eingabefeld und muss mit Hinzufügen in die obere Liste übernommen werden.
Wir fügen die Verweise auf das ZeosDB Verzeichnis sowie auf dessen Unterordner .\common und .
\dbase ein. Wenn alles geklappt hat, sollten die drei Pfade wie im nächsten Bild gezeigt in der Liste
eingetragen sein.
© 2003 by Daniel Pust, 2004 Lexa
Seite 19
CAO-Faktura EntwicklerDoku
Seite 20
Bei den nächsten Komponenten werden wir nur noch davon sprechen, den Pfad als
Bibliothekspfad einzustellen. Das Vorgehen ist dasselbe wie eben beschrieben.
Jetzt müssen für die ZeosDB Komponenten noch die Entwurfs- und Laufzeit-Packages compiliert
werden und dann stehen uns die Komponenten zur Verfügung. Wir werden dazu das erste Package
laden und compilieren und öffnen die Datei ZCommon6.dpk (Delphi 6) aus dem Verzeichnis, in
welches wir die Komponenten entpackt haben, mit Datei  Öffnen.
Nach dem Laden öffnet sich ein zusätzliches Fenster:
In diesem Fenster sind für uns zwei Schaltflächen von Interesse. Als erstes müssen wir ein Package
compilieren  Compilieren und, wenn es sich um ein Entwurfspackage handelt, dieses auch noch 
Installieren. Im vorliegenden Fall handelt es sich um ein Laufzeitpackage, so dass wir nur compilieren
müssen. Dieses Fenster können wir danach schließen. Eine eventuelle Frage von Delphi, ob
gespeichert werden soll, bestätigen wir mit JA.
Jetzt öffnen wir die Datei ZDbware6.dpk
© 2003 by Daniel Pust, 2004 Lexa
Seite 20
CAO-Faktura EntwicklerDoku
Seite 21
Da es sich hierbei um ein Entwurfszeitpackage handelt, steht uns nun auch die Installation zur
Verfügung, also zuerst Compilieren und danach Installieren. Auch dieses Fenster können wir nach
Fertigstellung schließen.
Als letztes kommen die eigentlichen Komponenten für den Zugriff auf die MySQL Datenbank aus der
Datei ZMySql6.dpk 4 an die Reihe, die auch compiliert und installiert werden. Wenn alles fehlerfrei
funktioniert hat, sollten in der Komponentenpalette die ZeosDB Komponenten verfügbar sein.
3.2.4. mpsDTAUS
Da die mpsDTAUS Komponente nicht als Package vorliegt, ist das Vorgehen zur Installation etwas
anders, als bei den Packages. Als erstes öffnen wir den Dialog zur installation der Komponente im
Menü mit Komponente  Komponente installieren...
4
Bitte nicht mit ZMsSql6.dpk verwechseln!
© 2003 by Daniel Pust, 2004 Lexa
Seite 21
CAO-Faktura EntwicklerDoku
Seite 22
Durch Clicken von Durchsuchen öffnet sich ein Datei-Browser Dialog, in dem wir aus dem Verzeichnis,
in das wir die mpsDTAUS Komponente entpackt haben, die Datei mpsDTAUS.pas auswählen und mit
Öffnen bestätigen. Jetzt sollte der Dialog wie oben aussehen. Den Namen des Package, in das die
Komponente installiert wird, lassen wir so wie von Delphi vorgegeben (dclusr.dpk). Nach Bestätigen
mit OK kommt noch eine Abfrage von Delphi, die wir mit JA bestätigen.
Jetzt steht die mpsDTAUS Komponente in der Komponentenpalette zur Verfügung, zu erkennen am
Bundesadler Symbol. Nun noch den Bibliothekspfad auf den mpsDTAUS Ordner der setzen, fertig.
3.2.5. TVolgaDBEdit
Als Package (also wie bei ZeosDB) wird jetzt die Datei dVolgaPD6.dpk aus dem Ordner, in den wir
das deutsche VolgaDBEdit von Jan entpackt haben, installiert. Den Bibliothekspfad setzen wir auf das
Verzeichnis, in dem dVolgaPD6.dpk liegt.
3.2.6. ZipMaster VCL
Diese Komponente wird ebenfalls als Package installiert. Die erforderliche Datei ZipMaster.dpk liegt
im Ordner .\VCL. Wir setzen die Bibliothekspfade auf den Ordner mit den entpackten Dateien und auf
die Unterordner .\VCL und .\LANG.
Fehlende Ressourendatei?
Beim Öffnen des Pakets erhalten wir evtl. eine Information, das eine Ressourcendatei nicht gefunden
wird. Dies werden wir lässig ignorieren, denn sie wird von Delphi erstellt.
Einen Screenshot benötigen wir an dieser Stelle nicht. Wer die Komponente in der Leiste nicht findet,
hat wahrscheinlich unter falschem Namen gesucht: sie heißt Delphi ZIP. Wer unter Z wie Zip gesucht
hat, lag also etwas daneben.
© 2003 by Daniel Pust, 2004 Lexa
Seite 22
CAO-Faktura EntwicklerDoku
Seite 23
3.2.7. CAO Komponenten
Zuerst fügen wir der Umgebung den Bibliothekspfad CAOKomponenten hinzu.
Die CAO Komponenten werden wie die mpsDTAUS Komponente installiert, also Komponente
installieren, Package compilieren und das Ganze für jede der folgenden Dateien.
•
btJvxRichPopup.pas
•
CaoDBGrid.pas
•
CaoGroupBox.pas
•
CaoMultiLang.pas
•
CaoSecurity.pas
•
email32.pas
•
XPMenu.pas
•
(SortGrid.pas)
•
EuroDMEdit
•
Historyc
Wer den Vorschlag vom Beginn der Doku befolgte (editieren der Procedure Register, siehe Seite 11),
findet die Komponenten nach erfolgreicher Installation unter CAO oder einem entsprechend selbst
vergebenen Namen in der Komponentenpalette (z.B. CAO-Faktura).
Zur Erinnerung:
Obwohl die Komponente SortGrid.pas mit der zugehörigen SortGridPreview.pas im Ordner der CAO
Komponenten enthalten ist, ist diese keine „echte“ CAO Komponente, sondern Bestandteil der
ZipMaster VCL, deshalb wird sie auch genau dort installiert. Einzige von Jan vorgenommene
Modifizierung ist die wechselnde Hervorhebung der Zeilen durch verschiedene Farben bzw.
Schriftarten. Wir müssen diese wie oben beschrieben installieren, um in den Genuss der Änderungen
zu kommen.
© 2003 by Daniel Pust, 2004 Lexa
Seite 23
CAO-Faktura EntwicklerDoku
Seite 24
Abbildung 13 - Die CAO Komponenten sind installiert
Das zuvor erwähnte, modifizierte SortGrid erscheint im (bereits installierten) Delphi-Zip:
3.2.8. NewExDBGrid
Ist wieder ein Package. Hier bitte die Datei dGJLSoftware_D6_JEDI.dpk verwenden, da diese für die
Verwendung mit CAO-Faktura angepasst wurde und speziell mit der JediVCL zusammenarbeitet. Das
Original verwendet die veraltete RxLib, die aus dem CAO Projekt herausgenommen wurde.
Den Bibliothekspfad setzen wir auf den Unterordner Lib\NewExDBGrid.
© 2003 by Daniel Pust, 2004 Lexa
Seite 24
CAO-Faktura EntwicklerDoku
Seite 25
3.2.9. SynEdit
Noch ein Package. Die zuständige Datei ist SynEdit_D6.dpk aus dem Ordner Packages. Den
Bibliothekspfad setzen wir auf den Unterordner \Source des Packages. Beim Öffnen des Packages
erscheint möglicherweise eine Information, dass eine Ressourcendatei nicht gefunden wird. Die Datei
wird erzeugt, wir ignorieren die Meldung. Nach erfolgreicher Installation erschlägt uns ein riesiges
Erfolgsfenster:
Wenn uns auf dem Weg dorthin Warnungen der folgenden Art begegnen, können wir diese getrost
ignorieren:
[Warnung]
Die Unit 'SynHighlighterUnreal' wurde implizit in Package 'SynEdit_D6' importiert
[Warnung]
Die Unit 'SynHighlighterIDL' wurde implizit in Package 'SynEdit_D6' importiert
In der Komponentenleiste ist SynEdit nun 2x zu sehen unte SynEdit und SynEditHighlighters.
3.2.10. tvPlanit
Wir verwenden zur Installation der Planit Komponente die Datei v103_d60.dpk aus dem Ordner
packages. Für Delphi 5 und 7 existieren speziell angepasste Versionen des Pakets: v103Cao50.dpk
und v103Cao70.dpk. Den Bibliothekspfad setzen wir auf den Unterordner \Source. Über Datei öffnen
installieren wir das Package auf dem inzwischen vertrauten Weg.
Nach dem Öffnen passt Delphi 6 das Paket an die installierten Komponenten an:
© 2003 by Daniel Pust, 2004 Lexa
Seite 25
CAO-Faktura EntwicklerDoku
Seite 26
Das Package wird geöffnet und es erscheinen Warnungen, die man sich interessehalber durchlesen
kann:
[Warnung]
Die Unit 'VpCaoTaskEditDlg' wurde implizit in Package 'V103_D60' importiert
[Warnung]
Die Unit 'VpCaoEvntEditDlg' wurde implizit in Package 'V103_D60' importiert
Wenn jedoch der folgende Fehler auftritt ...
[Fehler]
Ein 'Never-build' Package 'V103_D60' benötigt 'Always-build' Package 'JVCL200_R60'
... müssen wir das Package modifizieren. Wir öffnen dazu in der Delphi IDE die Package Datei
v103_d60.dpk. Am Ende der Compiler-Direktiven finden wir
{$IMPLICITBUILD OFF}
Wir ändern OFF in ON und speichern die Datei mit dieser Änderung.
{$IMPLICITBUILD ON}
Anschließend wiederholen wir die Installation. Nach click auf Compilieren bleiben nur noch die zwei
inzwischen bekannten (harmlosen) Warnungen übrig, das Package wurde fehlerfrei compiliert. Nun
noch installieren, dann meldet uns ein wiederum recht großformatiger Dialog den Erfolg. Die
Komponente tvplanit ist anschließend unter Visual PlanIt in der Komponentenleiste zu sehen:
© 2003 by Daniel Pust, 2004 Lexa
Seite 26
CAO-Faktura EntwicklerDoku
Seite 27
Mögliche Fehlerquelle:
Wenn von Delphi eine fehlerhafte 16-Bit Ressource bemängelt wird, hat man eine veraltete
Komponente erwischt. Bitte eine aktuelle Version aus dem CAO Download bzw. CVS besorgen.
3.3. MS XML 4: Unit erstellen
Für die Shop-Module benötigen wir die Unit MSXML2_TLB.PAS, die wir uns erzeugen müssen. Als
erstes besorgen wir uns von http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72bb4f2-46da-b4b6-c5d7485f2b42&DisplayLang=de die ActiveX Library für XML und führen das Setup für
die MS-XML Aktualisierung aus, indem wir die Microsoft Installer Datei (*.MSI) durch Doppelclick
starten.
Nach erfolgreichem Setup wählen wir in Delphi unter Projekt  Typenbibliothek den Eintrag
Microsoft XML, v4.0 (Version 4.0) und clicken auf Installieren.
Falls wir dazu aufgefordert werden, lassen wir eine bereits vorhandene Datei ersetzen:
© 2003 by Daniel Pust, 2004 Lexa
Seite 27
CAO-Faktura EntwicklerDoku
Seite 28
Dann werden wir nach dem Package gefragt, in welches die Datei eingebunden werden soll. Wir
belassen es bei der Voreinstellung:
Jetzt bekommen wir das Package angezeigt, in das die MSSML2_TLB eingefügt wurde.
Mit Compilieren werden die Komponenten eingebunden.
Wenn alles funktioniert hat, erscheinen in der Komponentenpalette unter ActiveX eine ganze Menge
mehr als die 3 bis 4 Komponenten, die Delphi standardmäßig mitbringt.
3.4. Komponenteninstallation beenden
An dieser Stelle beenden wir Delphi und starten den Rechner neu. Schließlich arbeiten wir unter
Windows und diesem geben wir nun die Gelegenheit, seinen fragmentierten Speicher neu zu ordnen.
© 2003 by Daniel Pust, 2004 Lexa
Seite 28
CAO-Faktura EntwicklerDoku
Seite 29
Übersicht der Suchpfade
Zum Schluss folgt an dieser Stelle zur Überprüfung eine Übersicht der Suchpfade, die nun in den
Umgebungsoptionen  Bibliothek  Bibliothekspfad enthalten sein sollten. Den Pfad zu Delphi kann
man
durch
den
Platzhalter
ersetzen,
den
Delphi
benutzt,
also
statt
C:\Programme\Borland\Delphi6\XYZ kann man $(DELPHI)\XYZ verwenden. Der Platzhalter
$(DELPHI) steht für den kompletten Pfad zum installierten Delphi, also beispielsweise
C:\Programme\Borland\Delphi6.
•
$(DELPHI)\Lib;
•
$(DELPHI)\Bin;
•
$(DELPHI)\Imports;
•
$(DELPHI)\Projects\Bpl;
•
C:\Programme\Borland\Delphi6\Lib\Jedi\JCL\Source;
•
C:\Programme\Borland\Delphi6\Lib\Jedi\JVCL\Source;
•
C:\Programme\Borland\Delphi6\Lib\Jedi\JVCL\Common;
•
C:\Programme\Borland\Delphi6\Lib\INDY9\Source;
•
C:\Programme\Borland\Delphi6\Lib\INDY9\D6;
•
C:\Programme\Borland\Delphi6\Lib\zeosdbo;
•
C:\Programme\Borland\Delphi6\Lib\zeosdbo\dbase;
•
C:\Programme\Borland\Delphi6\Lib\zeosdbo\common;
•
c:\programme\borland\delphi6\lib\mpsdtaus;
•
C:\Programme\Borland\Delphi6\Lib\Volga\Source;
•
C:\Programme\Borland\Delphi6\Lib\ZipMaster;
•
C:\Programme\Borland\Delphi6\Lib\ZipMaster\Lang;
•
C:\Programme\Borland\Delphi6\Lib\ZipMaster\VCL;
•
C:\Programme\Borland\Delphi6\Lib\CAO-Komponenten;
•
C:\Programme\Borland\Delphi6\Lib\New ExDBGrid;
•
C:\Programme\Borland\Delphi6\Lib\SynEdit\Source;
•
C:\Programme\Borland\Delphi6\Lib\tvplanit\source
Der Pfad zum GNU-Source von CAO sollte NICHT an dieser Stelle (also in den globalen
Einstellungen) gesetzt sein, sondern in der Projektumgebung. Ebenso kann man den Pfad zu den
Komponenten, die man ausschließlich für die Arbeit an CAO-Faktura benötigt, in den Projektoptionen
setzen und nicht in den globalen Optionen „herumschleppen“. Dies trägt zur besseren Übersicht bei,
wenn man nebenher an anderen Projekten arbeitet. Jeder Programmierer wird dort seine eigene
Strategie entwickeln und einsetzen.
© 2003 by Daniel Pust, 2004 Lexa
Seite 29
CAO-Faktura EntwicklerDoku
Seite 30
4. Der MySQL Server und Werkzeuge
Wir gehen davon aus, dass der Server bereits installiert ist. Eine Installationsanleitung ist auf
www.mysql.com zu finden. Wir gehen hier nicht weiter auf dieses Thema ein, denn es gibt inzwischen
sehr gute, auch deutschsprachige, Dokumentationen zu diesem und weiterführenden Themen.5
4.1. Das Werkzeug „MySQL-Front“
Jetzt ist eine gute Gelegenheit, ein Tool zu installieren, welches uns die Verwaltung von Datenbanken
sehr vereinfacht. Wir besorgen uns von der CAO Homepage die Datei MySQL-Front_2.5_Setup.exe
und starten diese, um MySQL Front 2.5 zu installieren. Das geht fix und problemlos.6
Nach der Installation starten wir das Tool und nehmen die ersten Einstellungen für unseren Server vor:
Durch Click auf New erstellen wir eine Verbindung, der Name erscheint unter Description
(Beschreibung). Danach tragen wir den Hostnamen oder die IP-Adresse (bei lokaler Installation
localhost oder 127.0.0.1) des MySQL Servers und einen gültigen Benutzer mit seinem Passwort ein.
Bei der Windowsinstallation von MySQL ist der Benutzer root standardmäßig ohne Passwort
vorhanden. Unsere Verbindung können wir nun mit Save speichern. Jetzt können wir mit Connect
versuchen, die Verbindung aufzubauen. Wenn das funktioniert, ist der Server erreichbar und dem
weiteren Vorgehen steht nichts mehr im Weg.
Achtung: Wie bereits erwähnt, wird bei der Installation von MySQL Server ein Standard-Benutzer root
ohne Passwort eingerichtet. Dieser Benutzer ist der Ober-Chef aller MySQL Datenbanken, er darf
jede Operation, auch jede kritische bzw. zerstörerische, Operation ausführen. Auf produktiv
eingesetzten Systemen, insbesondere in Mehrbenutzerumgebungen, sollten daher immer
entsprechende Benutzerkonten mit Passwörtern erstellt und verwendet werden. Die Vergabe eines
Passworts für root ist natürlich Pflicht. MySQL-Front können wir nun beenden.
5
Ein sehr gutes Buch zum Thema MySQL ist das offizielle Handbuch, von Michael „Monty“ Widenius, David Axmark, MySQL AB
Documentation Team, 1. Auflage 2002, erschienen bei mitp, ISBN 3-8266-0888-7. Hier erfährt man viel zum Thema MySQL
Installation / Bedienung. Dieses Handbuch dürfte inzwischen überarbeitet worden sein, bitte nach aktuellen Ausgaben suchen.
Auch die Internetseite des Herstellers bietet eine Fülle an sehr guten Dokumentationen zu jedem erdenklichen Thema, von denen
viele inzwischen auch auf Deutsch verfügbar sind, wie das offizielle Handbuch, das als Online Version kostenlos downloadbar ist!
Ein Muss für jeden ernsthaften Datenbankprogrammierer!
6
MySQL Front gibt es inzwischen in der Version 3.x und ist seither keine freie Software mehr. Auch die Stabilität lässt noch sehr zu
wünschen übrig, weswegen die Verwendung nicht ratsam ist.
© 2003 by Daniel Pust, 2004 Lexa
Seite 30
CAO-Faktura EntwicklerDoku
Seite 31
4.2. Bearbeiten von Tabellen
Wenn CAO-Faktura startet, wird auf dem Datenbank-Server die Datenbank mit den nötigen Tabellen
erzeugt, falls noch keine vorhanden ist.
Jedoch ist es für Programmierer hin und wieder nötig, Aktualisierungen von Tabellendaten manuell auf
dem Server einzuspielen. Dazu verwenden wir MySQL-Front mit einer passend vorbereiteten *.sql
Datei für Manipulationen an der Datenbank. Diese sql Datei nennt man auch Script, denn sie ist eine
reine Textdatei und enthält SQL-Befehle, mit denen der Server gefüttert wird. Zur Dokumentation
solcher Dateien können natürlich auch Kommentare enthalten sein.
Wir starten MySQL-Front und verbinden uns mit unserem Server. Auf der linken Seite haben wir eine
Auswahl aller auf dem Server angelegten Datenbanken, hier wählen wir die von uns verwendete
Datenbank aus. Auf der rechten Seite gibt es einen Reiter Query diesen clicken wir an, jetzt sollten wir
folgendes Bild haben:
Mit dem Button Load SQL from Textfile können wir jetzt die .sql-Datei laden, diese wird im Fenster
SQL-Query angezeigt. Mit dem Execute SQL Button wird das SQL-Script ausgeführt. Falls Fehler im
Script enthalten sind, werden diese im unteren Bereich angezeigt.
Manchmal ist ein Zurückblättern in diesem Bereich sehr wertvoll, um Fehler aufzuspüren. Bei längeren
Scripten kann man leicht die eine oder andere Meldung verpassen und das Aufspüren von Fehlern, die
daraus resultieren, ist alles andere als unterhaltsam.
© 2003 by Daniel Pust, 2004 Lexa
Seite 31
CAO-Faktura EntwicklerDoku
Seite 32
4.3. Probleme mit der „libmysql.dll”
Die Datei libmysql.dll ist eine immens wichtige Datei beim Zugriff auf den Datenbank-Server und
kann die schönsten Probleme verursachen, wenn sie nicht zum Server passt oder mehr als einmal auf
dem PC vorhanden ist. Wenn der MySQL-Server lokal installiert wurde, kann man versuchen die
libmysql.dll aus dem ./bin Verzeichnis des Servers zu verwenden. Bei der Verwendung eines Windows
Remote-Servers kann man die Datei von diesem kopieren und verwenden. Die sicherste Methode ist
jedoch, wenn man die in einem CAO Installerpaket enthaltene Datei verwendet. Man muss zudem
sicherstellen, dass CAO, egal ob im Delphi Debugger oder als Programm, die passende libmysql.dll
verwendet, z.B. indem man in jeden Ordner, der eine CAO EXE enthält, die mit CAO ausgelieferte
Datei kopiert.
Andere libmysql.dll Dateien vom PC zu löschen ist nicht nötig und evtl. sogar gefährlich, denn es kann
sein, dass andere Programme darauf angewiesen sind!
Oft kollidieren die DLL's im Windows System32 Ordner. Auch deshalb ist es immer eine gute Idee, die
„richtige“ DLL direkt im Programmordner unterzubringen, wie CAO es tut.
5. Der PostgreSQL Server
[ ... ist bald native für Windows verfügbar ]
6. Datenbankstruktur
[ Dieses Kapitel soll daran erinnern, dass die Doku niemals vollständig sein kann ]
© 2003 by Daniel Pust, 2004 Lexa
Seite 32
CAO-Faktura EntwicklerDoku
Seite 33
7. Konfiguration von CAO-Faktura
7.1. CAO Faktura Version 1.2
Wird CAO-Faktura 1.2.x gestartet und es ist noch kein Mandant angelegt, werden dazu aufgefordert,
einen solchen anzulegen. CAO präsentiert uns für die nötigen Daten folgende Eingabemaske:
Abbildung 14 - Einen Mandanten anlegen
Für den Mandanten können wir einen beliebigen Namen wählen, der natürlich eine Zuordnung zu dem
Unternehmen, das CAO-Faktura nutzt, ermöglichen sollte, z.B. Test Media AG. Einige Zeichen läßt
CAO im Namen des Mandanten nicht zu, das werden wir dann schon merken.
Die weitere Konfiguration gestaltet sich genau so wie bei MySQL Front, denn für jede Datenbankverbindung werden immer dieselben Parameter benötigt.
Bei Server wird der Hostname oder die IPAdresse des Rechners eingetragen, auf dem der MySQL
Server läuft. Für einen lokal installierten Server (CAO und MySQL laufen auf demselben Rechner)
geben wir hier localhost ein. Der vorgegebene Port 3306 ist der Standardport und kann so
übernommen werden.
CAO versucht eine Datenbank anzulegen. Den Namen können wir gemäß den Konventionen für
MySQL Datenbank Namen angeben, z.B. db_cao
Der Benutzer muss auf dem MySQL Server bereits eingerichtet sein und bestimmte Rechte auf dem
Server haben, dazu zählt auf jeden Fall das Recht zu schreiben, Tabellen anzulegen und Tabellen zu
indizieren. Für einen Windows MySQL Server, der ohne Veränderung der Standard-Einstellungen
gestartet wurde, kann der Benutzer root (ohne Passwort) verwendet werden.
© 2003 by Daniel Pust, 2004 Lexa
Seite 33
CAO-Faktura EntwicklerDoku
Seite 34
Die eingetragenen Daten lassen sich erst speichern, wenn CAO erfolgreich eine Verbindung aufbauen
konnte. Nach click auf Einstellungen testen werden wir über Erfolg oder Misserfolg informiert:
Das die Datenbank nicht existiert, ist keine Fehlermeldung, denn wird diese im weiteren Verlauf
anlegen. Fehlermeldungen der folgenden Art weisen auf Verbindungs- oder Rechteprobleme hin:
© 2003 by Daniel Pust, 2004 Lexa
Seite 34
CAO-Faktura EntwicklerDoku
Seite 35
Das erfordert, dass wir unsere Einstellungen überprüfen. IP-Adresse bzw. Hostname, Port, Benutzername und Passwort. Es kann auch sein, dass die Benutzerdaten korrekt sind, dann fehlen uns
entsprechende Zugriffsrechte, um Datenbanken anzulegen o.ä.
Wenn wir uns erfolgreich verbinden konnten, wird folgender Dialog angezeigt:
Jetzt clicken wir auf den Mandanten Test Media AG. Auf der rechten Seite bekommen wir die Daten
noch einmal detailliert angezeigt. Diese Daten übernehmen wir mit dem Button Übernehmen. Wir
bekommen jetzt die Mitteilung, dass die Datenbank noch nicht zu existieren scheint und werden
gefragt, ob diese angelegt werden soll. Diese Frage bestätigen wir mit JA. Die Standardformulare
installieren wir ebenfalls. Jetzt sollte CAO-Faktura starten und wir können beginnen.
7.1.1. Die Konfigurationsdatei
Die Datei CAO32_DB.cfg hat das Format altbekannter Windows-INI Dateien und ist in mehrere
Sektionen unterteilt.
[VERSION]
cao32_db.exe=1.2.0.2
cao_kasse.exe=1.2.0.1
zipdll.dll=1.7.0.8
cao_update.exe=1.3.0.2
rbide.cst=1.0.0.0
rbide.eng=1.0.0.0
rbide.deu=1.0.0.0
rbprint.cst=1.0.0.0
rbprint.eng=1.0.0.0
rbprint.deu=1.0.0.0
psrbd50.bpl=0.99
unzdll.dll=1.7.0.8
changes.txt=23.01.2003
license.txt=20.01.2003
license-GER.txt=20.01.2003
© 2003 by Daniel Pust, 2004 Lexa
Seite 35
CAO-Faktura EntwicklerDoku
Seite 36
land.cao=1.06
plz=1.07
blz=1.08
formulare.cao=13.12.2003
[MANDANTEN]
M001=Test Media AG
M001_SERVER=localhost
M001_USER=myself
M001_PASS_C=xxxxxxxxxx
M001_PASS=
M001_DB=db_cao
M001_PORT=3306
M001_SHOW_LOGINDIALOG=1
M001_USE_NTUSERNAME=0
CAO= Test Media AG
CAO_KASSE= Test Media AG
[UPDATE]
FTP_PORT=21
FTP_PROXY=
FTP_PROXYPORT=0
FTP_PASSIVE=0
Die Sektion [Update] diente dem automatischen Update und hat derzeit keine Funktion, weswegen wir
hier nicht weiter darauf eingehen.
Die Sektion [Mandanten] beinhaltet die einzelnen Mandanten, die CAO-Faktura bekannt sind. Für
jeden Mandanten lassen sich die Daten für den Mandantennamen auch manuell einstellen. Im obigen
Beispiel existiert ein einziger Mandant. Jeder weitere Mandant erhält eine fortlaufende, führende Mxxx
Nummer. Der zweite Mandant also M002 usw.
Die Einträge CAO= und CAO_KASSE= im selben Abschnitt bestimmen, welcher Mandant beim Start
des zugehörigen Programmes initialisiert und geladen wird. Dort steht der Name des Mandanten (nicht
der Datenbank).
Wenn SHOW_LOGINDIALOG=1 gesetzt wird, blendet CAO beim Starten einen Benutzerdialog ein, in
dem der Benutzername und das Passwort für den SQL Server eingegeben werden muss. Diese
Option verwendet man in Mehrbenutzer-umgebungen oder wenn man den Zugriff auf Datenbanken
über die MySQL Rechte-verwaltung limitieren möchte. Diese Option ist auf 0 zu setzen, wenn man
keinen Login Dialog benötigt.
Für die automatische Anmeldung mit Passwort an eine Datenbank beim Öffnen eines Mandanten
dienen M001_PASS_C= und M001_PASS=, wobei im ersteren Parameter das verwendete Passwort
verschlüsselt gespeichert wird. In diesem Fall wird ein evtl. unverschlüsseltes Passwort geblankt und
in das verschlüsselte übertragen. Der Algorithmus für die Verschlüsselung eignet sich nicht für
besonders schützenswerte Passwörter. In dem Fall ist ein Login-Dialog die bessere Wahl.
Die Option M001_USE_NTUSERNAME=0 kann man verwenden, wenn man die Windows Login Daten
für die Anmeldung verwenden möchte. Dies sollte man in der Regel vermeiden, da damit wiederum
eine evtl. unbeabsichtigte, automatisierte Anmeldung möglich ist.
In der Sektion [VERSION] stehen die Versionsnummern der einzelnen Dateien, diese Informationen
dienten dem Online-Update als Information. Da das Online Update derzeit keine Funktion hat, sind
natürlich auch diese Daten nicht wirklich von Belang.
© 2003 by Daniel Pust, 2004 Lexa
Seite 36
CAO-Faktura EntwicklerDoku
Seite 37
7.2. CAO Faktura Version 1.3
[ Platzhalter ]
8. Compilieren der Quelle
8.1. Laden der Quelle
Wir starten Delphi und laden mit Datei  Projekt öffnen die Projektdatei CAO32_DB.dpr.
8.2. Die ersten Einstellungen
Jetzt stellen wir als erstes den Projektpfad ein. Dieser gibt an, wo die binäre, ausführbare Datei
CAO32_DB.EXE nach dem Compilieren und Linken abgelegt wird.
Über Projekt  Optionen gelangen wir zum folgenden Dialog:
Um den Ordner, in welchem die GNU-Sourcen liegen, nicht zu überschwemmen und ein Problem mit
der CFG Datei zu vermeiden, stellen wir für compilierte Binärdateien entsprechende Pfade ein. Für
ausführbare, Dateien (EXE, DLL) bietet sich ein .\BIN Ordner an, compilierte Units legen wir z.B. im
Ordner .\DCU ab.
Die CAO32_DB.EXE darf sich auf keinen Fall im Projekt-Ordner befinden, denn Delphi überschreibt diese gnadenlos mit einer eigenen Konfigurationsdatei!
Pfadeinstellungen eines CAO Projekts
•
Ausgabe
[Pfad_zum_GNU_Code]\bin
•
Units
[Pfad_zum_GNU_Code]\dcu
© 2003 by Daniel Pust, 2004 Lexa
Seite 37
CAO-Faktura EntwicklerDoku
•
Suchpfad
Seite 38
[Pfad_zum_GNU_Code]\gnu-source
8.3. Compiler- und Linkereinstellungen
Die folgenden Angaben sind lediglich als Information gedacht, einige Compilerschalter können aber
durchaus von Wichtigkeit sein und unterschiedliche Programmabläufe verursachen, man denke dabei
nur an die komplette Auswertung von Boolschen Bedingungen. Das Resultat kann bei unterschiedlichen Einstellungen True sein, auf einer anderen Entwicklerumgebung jedoch False. Viel Spass
bei der Fehlersuche 
Abbildung 15 - Linker Einstellungen Delphi 5
© 2003 by Daniel Pust, 2004 Lexa
Seite 38
CAO-Faktura EntwicklerDoku
Seite 39
Abbildung 16 - Compiler Einstellungen Delphi 5
8.4. CAO compilieren und starten
Mit F9 wird das Projekt übersetzt und gestartet. Abgesehen von Fehlern während der Compilierung,
treten als häufigste Fehlerursachen falsche Einstellungen für die Verbindung zum MySQL Server auf,
z.B. eine fehlerhafte CAO32_DB.CFG. Wir können sehr schnell mit MySQL-Front testen, ob wir auf
den Server zugreifen und Daten in den Tabellen ändern bzw. löschen können. Diese und weitere
Rechte, z.B. das Recht zum Indizieren von Tabellen, können wir auch fix in der MySQL
Benutzerverwaltung überprüfen.
9. Geschafft. Was nun?
Jetzt, da wir die Entwicklungsumgebung so eingerichtet haben, dass wir am Programm CAO-Faktura
Änderungen und Erweiterungen vornehmen können, sollten wir sehen, dass wir den Anschluss an die
Entwicklung nicht verpassen. Es sollte selbstverständlich sein, dass wir uns regelmäßig die aktuellen
Sourcen besorgen und im CAO-Forum aktiv an der Entwicklung und Diskussion teilnehmen. Ein
Gedanken- und Meinungsaustausch mit den Entwicklern (und Anwendern) ist oberstes Prinzip, da
sonst die Gefahr besteht, dass die Entwicklung an einem vorbei läuft.
Also schlagen wir uns von nun an die Nächte um die Ohren und hören uns früh am Morgen das
fürchterliche Gebrüll der Vögel an. Wir versuchen das, was CAO noch nicht kann oder was uns nicht
gefällt, zu ändern und zu ergänzen. Neue Ideen sollte man mit den anderen Entwicklern abstimmen,
um zu vermeiden, dass zwei das Gleiche tun und letztlich drei nicht kompatibel sind. Auch wenn sich
jemand mit der Beseitigung eines Programmfehlers beschäftigen möchte, ist es ratsam, das Vorhaben
den anderen Entwicklern im Forum bekannt zu geben.
© 2003 by Daniel Pust, 2004 Lexa
Seite 39
CAO-Faktura EntwicklerDoku
Seite 40
Ich weiss nicht, was ich machen soll 
Dieses Argument gilt nicht .
An Ideen kann kein Mangel herrschen. Das Forum, der dort enthaltene Feature-Request und der BugReport sind hervorragende Anlaufstellen, um sich über Wünsche und Programmfehler zu informieren.
9.1. Probleme? Fragen? Unklarheiten?
Vorschläge und Kritiken zu dieser Doku bitte wir, an den bzw. die Autoren zu senden.
Viele Probleme und Fehler beim Compilieren wurden bereits im Forum beschrieben, deshalb führt im
Falle eines Falles der erste Weg dorthin. Hinweise zu Fehlern in der vorliegenden Doku oder
Anregungen, Lob, Kritik etc. nehmen die Autoren gern entgegen.
Wer Fehler im Forum melden oder sich mit anderen Entwicklern unterhalten möchte, sollte wissen,
wovon er spricht und es die Mitleser bzw. Helfer ebenfalls wissen lassen. Ansonsten zwingt man
diejenigen, die helfen wollen, zu vermeidbaren und zeitraubenden Rückfragen. Das bezieht sich
besonders auf die Versionsnummern der Komponenten, des MySQL-Servers und nicht zuletzt
nachvollziehbare Fehlerbeschreibungen (Debugger, Screenshots, Variableninhalte usw.).
Viele Informationen kann man beispielsweise im CAO Menü unter Hilfe  Info  Versionsinfo
erlangen, sofern es gelungen ist, CAO zum Laufen zu bringen. Dem folgenden Dialog lassen sich viele
wichtige Angaben entnehmen:
9.2. Delphi Links
9.2.1. Delphi Linkliste
•
http://www.faqsen.de/delphi/links.jsp
9.2.2. Empfehlungsliste
•
http://delphiworks.sourceforge.net/delphians.best/index.htm
© 2003 by Daniel Pust, 2004 Lexa
Seite 40
CAO-Faktura EntwicklerDoku
Seite 41
9.2.3. Delphi für Anfänger
•
http://www.f.shuttle.de/f/herder/Delphi_Anl/
9.2.4. Deutsche Delphi-Foren
•
http://www.delphi-forum.de/
•
http://www.chaho.de/
•
http://www.delphi-treff.de/
•
http://www.delphipraxis.net/index.php
•
http://www.tutorials.delphi-source.de/
•
http://www.grundlagen.delphi-source.de/
•
http://www.delphi-fundgrube.de/
•
http://home.t-online.de/home/ralf.herlitze/dtips.htm
9.3. Links für Datenbankentwickler
•
[ ... Vorschläge !?...]
9.3.1. MySQL
•
www.mysql.com
•
9.3.2. PostgreSQL
•
9.3.3. SQL Tools
•
9.3.4. SQL Foren
•
9.4. Sonstiges
9.4.1. CVS
•
http://www.oreilly.de/catalog/cvsger/chapter/ch02.pdf
•
http://www-t.zhwin.ch/~smr/cvstools/anleitung.pdf
•
http://www.informatik.unimannheim.de/informatik/pi4/stud/veranstaltungen/ss2002/pm/dokumente/pmcvs-1.pdf
•
http://www-in.fh-swf.de/fb-in/media/free/roth.cvs.pdf
•
10. Anhang
10.1. Index
© 2003 by Daniel Pust, 2004 Lexa
Seite 41
CAO-Faktura EntwicklerDoku
Quellen
Sourcen
Seite 42
5
10.2. Abbildungen
Abbildung 1 - Einstellungen für den CVS Server
7
Abbildung 2 - Optimieren der Übertragung
8
Abbildung 3 - Proxy definieren, wenn nötig
8
Abbildung 4 - Editor und Passwortdatei
9
Abbildung 5 - Erfolgreicher Login und Checkout
10
Abbildung 6 - Verzeichnisse der CAO Komponenten
Abbildung 7 - Indy 9 installiert
14
13
Abbildung 8 - Fehlerhafter Windows Pfad: Delphi findet nichts
Abbildung 9 - Windows Pfade prüfen bzw. anpassen
Abbildung 10 - Jedi Pfade
16
17
18
Abbildung 11 - Die Jedi im Delphi
18
Abbildung 12 - Die Jedi in der Komponentenleiste
18
Abbildung 13 - Die CAO Komponenten sind installiert
24
Abbildung 14 - Einen Mandanten anlegen 33
Abbildung 15 - Linker Einstellungen Delphi 5
38
Abbildung 16 - Compiler Einstellungen Delphi 5
39
10.3. GNU Free Documentation License
This is an unofficial translation of the GNU Free Documentation License into German. It was not published by the Free Software
Foundation, and does not legally state the distribution terms for documentation that uses the GNU FDL--only the original English
text of the GNU FDL does that. However, we hope that this translation will help German speakers understand the GNU FDL
better.
Dies ist eine inoffzielle deutsche Übersetzung der GNU Free Documentation License. Sie ist nicht von der Free Software
Foundation herausgegeben und erläutert nicht die Bedingungen der GNU FDL -- Dies tut nur der original englische Text der GNU
FDL. Dennoch hoffen wir, dass diese Übersetzung mit dazu beiträgt deutschsprachigen Personen das Verstehen der GNU FDL
zu erleichtern.
Präambel
Der Zweck dieser Lizenz ist es, ein Handbuch, Textbuch oder ein anderes zweckdienliches und nützliches Dokument frei, im
Sinne von Freiheit, zu machen; jedermann die Freiheit zu sichern, es zu kopieren und mit oder ohne Änderungen daran, sowohl
kommerziell als auch nicht kommerziell weiter zu verbreiten.
Weiterhin sichert diese Lizenz einem Autor oder Verleger die Möglichkeit, Anerkennung für seine Arbeit zu erhalten ohne für
Änderungen durch Andere verantwortlich gemacht zu werden.
Diese Lizenz ist eine Art des "copyleft", was bedeutet, daß von diesem Dokument abgeleitete Werke ihrerseits in derselben
Weise frei sein müssen.
Dies vervollständigt die GNU General Public License, die eine "copyleft"-Lizenz ist, und für freie Software entworfen wurde.
© 2003 by Daniel Pust, 2004 Lexa
Seite 42
CAO-Faktura EntwicklerDoku
Seite 43
Diese Lizenz wurde für Handbücher für freie Software entworfen, denn frei Software braucht freie Dokumentation: Ein freies
Programm sollte von Handbüchern begleitet sein, die dieselben Freiheiten bieten, die auch die Software selbst bietet.
Diese Lizenz ist aber nicht auf Softwarehandbücher beschränkt; vielmehr kann sie für jede Art von textuellen Werken verwendet
werden, unabhängig davon, was das Thema ist, oder ob es als gedrucktes Buch veröffentlicht wurde. Wir empfehlen diese
Lizenz prinzipiell für Werke, die als Anleitungen oder Referenzen dienen sollen.
1. Anwendbarkeit und Definitionen
Diese Lizenz findet Anwendung auf jedes Handbuch oder andere Werk, unabhängig von dem Medium, auf dem es erscheint,
das einen vom Rechteinhaber eingefügten Hinweis enthält, der besagt, daß das Werk unter den Bedingungen dieser Lizenz
verbreitet werden darf.
Ein solcher Hinweis gewährt eine weltweit gültige, tantiemenfreie und zeitlich unbefristete Lizenz, die es gestattet das Werk,
unter den hier festgelegten Bedingungen, zu nutzen.
Der Begriff Dokument wird im Folgenden für alle solche Handbücher und Werke verwendet.
Jede Person kann Lizenznehmer sein und wird im Folgenden mit Sie angesprochen.
Sie akzeptieren diese Lizenz, wenn Sie ein Dokument derart kopieren, verändern oder verteilen, daß Sie gemäß den Gesetzen
zum Copyright die Erlaubnis benötigen.
Eine modifizierte Version des Dokumentes steht für jedes Werk, das das Dokument als Ganzes oder in Teilen enthält, sowohl
auf Datenträger kopiert, als auch mit Änderungen und/oder in andere Sprachen übersetzt.
Ein zweitrangiger Abschnitt ist ein benannter Anhang oder eine Enleitung des Dokumentes, der sich ausschließlich mit dem
Verhältnis des Autors oder Verlegers des Dokumentes zu dem eigentlichen Thema des Dokumentes (oder damit
zusammenhängender Dinge) beschäftigt, und der nichts enthält, das direkt zu dem eigentlichen Thema gehört. (Wenn das
Dokument beispielweise ein Buch über Mathematik ist, dann darf ein zweitrangiger Abschnitt nichts über Mathematik enthalten).
Dies kann eine historische Beziehung zu dem Thema, oder damit zusammenhängender Dinge, oder von gesetzlicher,
gesellschaftlicher, philosophischer, ethischer oder politischer Art sein, die das Thema betreffen.
Die unveränderlichen Abschnitte sind benannte zweitrangige Abschnitte, deren Titel als unveränderlicher Abschnitt in dem
Lizenhinweis, der das Dokument unter diese Lizenz stellt, aufgeführt sind.
Wenn ein Abschnitt nicht in die oben stehende Definition eines zweitrangigen Abschnittes passt, dann ist es nicht erlaubt diesen
Bereich als unveränderlichen Bereich zu kennzeichnen.
Umschlagtexte sind bestimmte, kurze Textstücke, die als vorderer Umschlagtext oder als hinterer Umschlagtext in der Notiz
benannt werden, die besagt, dass das Dokument unter dieser Lizenz freigegeben ist.
Ein vorderer Umschlagtext kann bis zu 5 Worte enthalten, ein hinterer Umschlagtext bis zu 25 Worte.
Eine transparente Kopie des Dokumentes bezeichnet eine maschinenlesbare Kopie, dargestellt in einem Format, dessen
Spezifikationen allgemein verfügbar sind, und das geeignet ist das Dokument auf einfache Weise mit einem allgemeinen
Texteditor oder (für Bilder, die aus Pixeln bestehen) mit einem allgemeinen Bildberabeitungsprogramm oder (für Zeichnungen)
mit einem häufig verfügbaren Zeichenprogramm zu überarbeiten, und das geeignet ist es als Eingabe für Textformatierer zu
verwenden, oder als Eingabe für automatische Konvertierungsprogramme, die eine Reihe von unterschiedlichen Formaten
erzeugen, die ihrerseits als Eingabe für Textformatierer verwendet werden können. Eine Kopie in ein anderes transparentes
Dateiformat dessen Auszeichnung oder das fehlen der Auszeichnungen derart beschaffen sind, nachfolgende Modifikationen
durch die Leser zu verhindern oder zu erschweren ist nicht transparent
Ein Bildformat ist nicht transparent, wenn es für eine wesentliche Menge von Text verwendet wird.
Eine Kopie, die nicht transparent ist, wird als opak bezeichnet.
Beispiele verwendbarer Formate für transparente Kopien schliessen einfachen ASCII-Text ohne Auszeichnungen, TeX-info
Eingabe, LaTeX-Eingabeformat, SGML oder XML, sofern die verwendete DTD öffentlich verfügbar ist, sowie standardkonformes,
einfaches HTML, Postscript oder PDF, die für Veränderungen durch Menschen entworfen sind, ein.
Beispiele für transparente Bildformate sind u.a. PNG, XCF und JPG. Opake Formate sind unter anderen solche proprietären
Formate, die nur von proprietären Textverarbeitungsprogramm gelesen und bearbeitet werden können, SGML oder XML deren
DTD und/oder Verarbeitungswerkzeuge nicht allgemein verfügbar sind, und maschinengeneriertes HTML, PostScript oder PDF,
das von manchen Textverarbeitungsprogrammen nur zu Ausgabezwecken erzeugt wird.
Mit Titelseite wird in einem gedruckten Buch die eigentliche Titelseite sowie die direkt darauf folgenden Seiten bezeichnet, die all
das in lesbarer Form enthalten, was in dieser Lizenz gefordert ist, dass es auf der Titelseite erscheinen muss.
Für Werke, die in Formaten vorliegen, die keine Titelseiten haben, gilt als Titelseite der Text, der der auffälligsten Darstellung
des Titels des Werkes direkt folgt, aber noch vor dem Inhalt des Werkes steht.
Ein Abschnitt mit dem Titel xyz bezeichnent einen benannten Unterbereich des Dokumentes, dessen Titel entweder genau xyz
ist, oder der xyz in Anführungszeichen enthält, der einem Text folgt, der xyz in eine andere Sprache übersetzt. (Hier steht xyz für
einen speziellen Abschnittsnamen, der im Folgenden erwähnt wird wie"Danksagung"(Acknowledgements),
"Widmung"(Dedications), "Anmerkung"(Endorsement) oder "Historie"(History).).
Den Titel erhalten eines Abschnittes bedeutet, daß beim Modifizieren des Dokumentes dieser Abschnitt mit dem Titel xyz bleibt,
wie es in dieser Definition festgelegt ist.
Das Dokument kann direkt hinter der Notiz, die besagt, dass das Dokument unter dieser Lizenz freigegeben ist,
Garantieausschlüsse enthalten. Diese Garantieausschlüsse werden so behandelt, asl seien sie als Referenzen in diese Lizenz
eingeschlossen, allerdings nur um Garantien auszuschliessen: Jede andere Implizierung, die dieser Ausschluss hat ist ungültig
und keine Wirkung im Sinne dieser Lizenz.
2. Datenträgerkopien
Sie dürfen das Dokument auf jedem Medium sowohl kommerziell als auch nicht kommerziell kopieren und verbreiten,
vorausgesetzt, daß diese Lizenz, die Copyright-Hinweise sowie der Lizenzhinweis, der besagt, daß diese Lizenz auf das
Dokument anzuwenden ist, in allen Kopien reproduziert wird, und daß keine weiteren Bedingungen jeglicher Art zu denen dieser
Lizenz hinzugefügt werden.
Sie dürfen in den Kopien, die Sie erstellen oder verbreiten, keinerlei technische Maßnahmen treffen um das Lesen oder das
weitere Kopieren zu erschweren oder zu kontrollieren. Dennoch dürfen Sie Gegenleistungen für Kopien akzeptieren. Wenn Sie
eine ausreichend große Menge von Kopien verteilen, müssen Sie zusätzlich die bestimmungen von Ziffer 3 beachten.
© 2003 by Daniel Pust, 2004 Lexa
Seite 43
CAO-Faktura EntwicklerDoku
Seite 44
Sie können ausserdem unter denselben Bedingungen, die oben angeführt sind, Kopien verleihen und sie können Kopien auch
öffentlich bewerben.
3. Kopien in Stückzahlen
Wenn Sie gedruckte Kopien des Dokumentes (oder Kopien auf Medien, die üblicherweise gedruckte Umschläge haben), in einer
Stückzahl von mehr als 100 veröffentlichen, und der Lizenzhinweis des Dokumentes Umschlagtexte verlangt, müssen die Kopien
in Hüllen verpackt sein, die alle diese Umschlagtexte klar und lesbar enthalten. Die vorderen Umschlagtexte auf dem vorderen
Umschlag, die hinteren Umschlagtexte auf dem hinteren Umschlag.
Beide Umschläge müssen Sie ausserdem klar und lesbar als den Herausgeber dieser Kopien benennen.
Der vordere Umschlag muss den gesamten Titel darstellen, mit allen Worten gleich auffällig und sichtbar. Sie können weiteres
Material den Umschlägen hinzufügen.
Das Kopieren mit Änderungen, die auf Umschläge begrenzt sind, können, so lange der Titel des Dokuments erhalten bleibt,
ansonsten als Datenträgerkopien behandelt werden.
Wenn der vorgeschriebene Text für einen der Umschläge zu umfangreich ist um lesbar zu bleiben, sollten Sie den ersten der
aufgelisteten Texte auf den aktuellen Umschlag nehmen (so viel wie vernünftigerweise möglich ist) und den Rest auf direkt
angrenzenden Seiten.
Wenn Sie mehr als 100 opake Kopien veröffentlichen oder verbreiten, müssen Sie entweder eine maschinenlesbare,
transparente Kopie jeder opaken Kopie beilegen, oder mit bzw. in jeder opaken Kopie eine Computer-Netzwerk Adresse
angeben, von wo die allgemeine, netzwerk benutzende Öffentlichkeit, Zugriff zum Download einer kompletten transparenten
Kopie über öffentliche Standardnetzwerkprotokolle hat.
Wenn Sie sich für die letztere Möglichkeit entscheiden, müssen Sie mit Beginn der Verbreitung der opaken Kopien in
Stückzahlen, zumutbare und vernünftige Schritte unternehmen, um sicher zu stellen, daß die transparenten Kopien mindestens
ein Jahr nach der Auslieferung der letzten opaken Kopie (direkt oder über einen Agenten oder Händler) dieser Ausgabe an die
Öffentlichkeit, an der genannten Adresse verfügbar bleiben.
Es ist erbeten, aber nicht gefordert, daß Sie ausreichend lange vor der Auslieferung einer grösseren Menge von Kopien, Kontakt
mit den Autoren des Dokumentes aufnehmen, um jenen die Möglichkeit zu geben, Ihnen eine aktualisierte Version des
Dokumentes zuzuleiten.
4. Modifikationen
Unter den obigen Bedingungen unter Ziffer 2 und 3 können Sie modifizierte Versionen kopieren und verbreiten, vorausgesetzt,
daß Sie die modifizierte Version unter exakt dieser Lizenz herausgeben, wobei die modifizierte Version die Rolle des
Dokumentes einnimmt, und dadurch die weitere Modifikation und Verbreitung an jeden Lizensieren, der eine Kopie davon besitzt.
Zusätzlich müssen Sie die folgenden Dinge in der modifizierten Version beachten:
1. Benutzen Sie auf der Titelseite (und auf Umschlägen, sofern vorhanden) einen Titel, der sich von dem Titel des
Dokumentes und von früheren Versionen unterscheidet. (Die früheren Versionen sollten, wenn es welche gibt, in dem
Abschnitt Historie aufgelistet werden.)
Sie können denselben Titel wie den einer Vorgängerversion verwenden, wenn der ursprüngliche Herausgeber damit
einverstanden ist.
2. Geben Sie auf der Titelseite eine oder mehrere Personen oder Einheiten, die als Autoren auftreten können, als für die
Modifikationen verantwortliche Autoren der modifizierten Version, zusammen mit mindestens fünf der ursprünglichen
Autoren der Ursprungsversion an (alle vorherige Autoren, wenn es weniger als fünf sind), es sei denn diese befreien
Sie von dieser Notwendigkeit.
3. Geben Sie auf der Titelseite den Namen des Herausgebers als Herausgeber an.
4. Erhalten Sie alle Copyright-Vermerke des Dokumentes.
5. Setzen Sie einen passenden Copyright-Vermerk für Ihre Modifikationen direkt hinter die anderen Copyright-Vermerke.
6. Schliessen Sie direkt hinter den Copyright-Vermerken einen Lizenzhinweis ein, der die öffentliche Erlaubnis erteilt, die
modifizierte Version unter den Bedingungen dieser Lizenz zu benutzen, wie es im Anhang weiter unten beschrieben
ist.
7. Erhalten Sie im Copyright-Vermerk die komplette Liste der unveränderlichen Abschnitte und obligatorischen
Umschlagtexte, die in dem Lizenzvermerk des Dokumentes aufgeführt sind.
8. Schliessen Sie eine unveränderte Kopie dieser Lizenz mit ein.
9. Erhalten Sie den Abschnitt "Historie". Erhalten Sie den Titel und fügen Sie einen Punkt hinzu der mindestens den Titel,
das Jahr, die neuen Autoren und Herausgeber, wie sie auf der Titelseite aufgeführt sind, enthält. Sollte es keinen
Abschnitt Historie geben, dann erstellen Sie einen, der Titel, Jahr, Autor und Herausgeber des Dokumentes, wie auf
der Titelseite angegeben, enthält und fügen Sie einen Punkt hinzu, der die modifizierte Version wie oben dargestellt
beschreibt.
10. Erhalten Sie die Netzwerkadresse, die angegeben wurde, um Zugang zu einer transparenten Kopie zu gewähren,
sowie entsprechend angegebene Adressen früherer Versionen, auf denen das Dokument aufbaute. Diese Angaben
können in den Abschnitt Historie verschoben werden. Sie können die Netzwerkadresse weglassen, wenn sie sich auf
ein Werk bezieht, das mindestens 4 Jahre vor dem Dokument selbst veröffentlicht wurde, oder wenn der ursprüngliche
Herausgeber der Version, auf die sich die Adresse bezieht, seine Erlaubnis erteilt.
11. Erhalten Sie für alle Abschnitt, die als Danksagungen (Acknowledgements) oder Widmungen (Dedications)
überschrieben sind, den Titel sowie die Substanz und den Ton aller vom Geber gemachten Danksagungen und/oder
Widmungen in diesem Abschnitt.
12. Erhalten Sie alle unveränderlichen Abschnitte unverändert, sowohl im Titel als auch im Text. Abschnittsnummern oder
dergleichen gelten hierbei nicht als Teil des Titels.
© 2003 by Daniel Pust, 2004 Lexa
Seite 44
CAO-Faktura EntwicklerDoku
Seite 45
13. Löschen Sie alle Abschnitte, die als Anmerkungen (Endorsements) überschrieben sind. Ein solchen Abschnitt sollte
nicht in der modifizierten Version enthalten sein.
14. Benennen Sie keinen Abschnitt in Anmerkungen um, oder in einen Namen, der in Konflikt mit einem unveränderlichen
Abschnitt gerät.
15. Erhalten Sie alle Garantieausschlüsse.
Wenn die modifizierte Version neue Vorspannabschnitte oder Anhänge enthält, die zweitrangige Abschnitte sein können, und die
kein vom Dokument kopiertes Material enthalten, können Sie, nach Ihrem Belieben, einige oder alle diese Abschnitte als
unveränderliche Abschnitte in die Lizenzanmerkung der modifizierten Version aufnehmen. Diese Titel müssen sich von allen
anderen Titeln unterscheiden.
Sie können einen Abschnitt Anmerkungen anfügen, sofern dieser nichts als Bemerkungen, verschiedener Stellen, zu der
modifizierten Version enthält.
Beispielsweise Publikumsreaktionen oder eine Mitteilung, daß der Text von einer Organisation als maßgebliche Definition eines
Standards geprüft wurde.
Sie können einen Teil mit bis zu fünf Worten als vorderen Umschlagtext und einen mit bis zu 25 Worten als hinteren
Umschlagtext an das Ende der Liste mit den Umschlagtexten der modifizierten Version hinzufügen.
Nur je ein Teil für den vorderen Umschlagtext und den hinteren Umschlagtext können von jeder Einheit hinzugefügt (oder durch
entsprechende Anordnung erstellt) werden.
Wenn das Dokument bereits einen Umschlagtext für denselben Umschlag enthält, das von Ihnen oder der Einheit, in deren
Namen Sie tätig sind, bereits früher eingefügt wurde, dürfen Sie keine neue hinzufügen. Sie können aber den alten ersetzen,
wenn sie die ausdrückliche Genehmigung des Herausgebers haben, der den früheren Text eingefügt hat.
Der/die Autor(en) und Herausgeber des Dokumentes geben duch diese Lizenz weder implizit noch explizit die Erlaubnis ihren
Namen für Werbung in den Anmerkungen der modifizierten Version zu benutzen.
5. Dokumente Kombinieren
Sie können mehrere Dokumente, die unter dieser Lizenz freigegeben sind, unter den Bedingungen unter Ziffer 4 für modifizierte
Versionen miteinander kombinieren, vorausgesetzt, daß in der Kombination alle unveränderlichen Abschnitte aller
Originaldokumente, enthalten sind, und daß Sie diese alle in der Liste der unveränderlichen Abschnitte der Lizenzanmerkung
des kombinierten Dokumentes aufführen, sowie alle Garantieausschlüsse erhalten.
Das kombinierte Werk braucht nur eine Kopie dieser Lizenz zu enthalten, und mehrere identische unveränderliche Abschnitte
können durch eine einzelne Kopie ersetzt werden.
Wenn es mehrere unveränderliche Abschnitte mit unterschiedlichem Inhalt aber gleichem Namen gibt, machen Sie den Namen
eindeutig, indem Sie am Ende des Titels, in Anführungszeichen, den Namen des original Autors oder Herausgebers, falls
bekannt, oder andernfalls eine eindeutige Nummer anhängen.
Machen Sie dasselbe mit den Titeln der Abschnitte in der Liste der unveränderlichen Abschnitte im Lizenzhinweis des
kombinierten Werkes.
In der Kombination müssen Sie alle Abschnitte mit dem Titel Historie in den unterschiedlichen Dokumenten zu einem einzelnen
Abschnit Historie zusammenführen; entsprechend verfahren Sie mit den Abschnitten Danksagungen und Widmungen. Sie
müssen alle Abschnitte mit dem Titel Anmerkungen löschen.
6. Sammlungen von Dokumenten
Sie können eine Sammlung von Dokumenten erstellen, bestehend aus diesem Dokument und weiteren, unter dieser Lizenz
stehenden Dokumenten, wobei Sie die einzelnen Kopien dieser Lizenz in den verschiedenen Dokumenten durch eine einzelne
Kopie, die in der Sammlung enthalten ist, ersetzen, vorausgesetzt, Sie befolgen in allen andern Punkten, für jedes der
Dokumente, die Regeln für Datenträgerkopien.
Sie können ein einzelnes Dokument aus einer solchen Sammlung herausziehen und einzeln unter dieser Lizenz verbreiten,
vorausgesetzt, Sie fügen eine Kopie dieser Lizenz in das extrahierte Dokument ein, und befolgen ansonsten die Bedingungen
dieser Lizenz für Datenträgerkopien.
7. Aggregation mit unabhängigen Werken
Eine Zusammenstellung des Werkes, oder von Ableitungen davon, mit anderen, separaten und unabhängigen Dokumenten oder
Werken, in oder auf demselben Band eines Speicher- oder Verbreitungsmediums, wird dann eine Aggregation genannt, wenn
die Copyrights der Zusammenstellung nicht dazu verwendet werden die Rechte der Benutzer, die für die einzelnen Werke
gewährt werden, stärker zu beschränken als dies durch die Lizenzen der einzelnen Werke geschieht.
Wenn das Werk in einer Aggregation vorhanden ist, so gilt diese Lizenz nicht für die anderen Werke dieser Aggregation, die
keine Ableitung des Dokumentes sind.
Wenn die Bestimmungen für die Umschlagtexte aus Ziffer 3 Anwendung finden, und wenn das Dokument weniger als die Hälfte
der gesammten Aggregation ausmacht, dann können die Umschlagtexte auf Seiten gesetzt werden, die das Dokument innerhalb
der Aggregation umschliessen, oder auf das elektronische Äquivalent eines Umschlages, wenn das Dokument in elektronischer
Form vorliegt.
Andernfalls müssen sie auf gedruckten Umschlägen erscheinen, die das gesamte Werk umschliessen.
8. Übersetzung
Übersetzungen werden als eine Art von Modifikationen betrachtet. Damit können Sie eine Übersetzung des Dokumentes unter
den Bestimmungen von Ziffer 4 verbreiten.
Um die unveränderlichen Abschnitte durch eine Übersetzung zu ersetzen, benötigen Sie die spezielle Erlaubnis des CopyrightInhabers. Sie können allerdings Übersetzungen von einigen oder allen unveränderlichen Abschnitten zu den original Versionen
der unveränderlichen Abschnitte hinzufügen.
Sie können eine Übersetzung dieser Lizenz und allen Lizenzhinweisen im Dokument sowie allen Garantieausschlüssen
hinzufügen, vorausgesetzt, daß Sie ebenso die originale englische Version dieser Lizenz und aller Hinweise und Ausschlüsse
© 2003 by Daniel Pust, 2004 Lexa
Seite 45
CAO-Faktura EntwicklerDoku
Seite 46
beifügen.
Sollten die Übersetzung und die Originalversion dieser Lizenz oder eines Hinweises oder Ausschlusses voneinander abweichen,
so hat die Originalversion vorrang.
Wenn ein Abschnitt des Dokumentes als Danksagung, Widmungen oder Historie überschrieben ist, so erfordert die Forderung
(Ziffer 4) den Titel dieses Abschnittes zuerhalten, die Änderung des aktuellen Titels.
9. Abschlussbestimmungen
Sie dürfen dieses Dokument nicht kopieren, verändern, unterlizensieren oder verteilen mit der Ausnahme, daß Sie es
ausdrücklich unter dieser Lizenz tun.
Jedweder andere Versuch zu kopieren, zu modifizieren, unter zu lizensieren oder zu verbreiten ist unzulässig und führt
automatisch zum Entzug der durch diese Lizenz gewährten Rechte. Dennoch verlieren jene Parteien, die von ihnen Kopien oder
Rechte unter dieser Lizen erhalten haben, nicht Ihre Rechte, so lange sie sich in völliger Übereinstimmung mit der Lizenz
befinden.
10. Spätere Überarbeitungen dieser Lizenz
Die Free Software Foundation kann von Zeit zu Zeit neue, überarbeitete Versionen der GNU Free Dokumentation License
veröffentlichen. Diese neuen Versionen werden im Geiste gleich bleiben, können sich aber in Details unterscheiden um neuen
Problemen oder Besorgnissen gerecht zu werden.
Siehe: http://www.gnu.org/copyleft/
Jede Version dieser Lizenz erhält eine eigene Versionsnummer.
Wenn das Dokument bestimmt, daß eine bestimmt numerierte Version oder jede spätere Version dafür gilt, haben Sie die Wahl
den Bestimmungen dieser speziell benannten Version zu folgen, oder jeder Version, die später von der Free Software
Foundation, nicht als Entwurf, veröffentlicht wurde.
Anhang:
Wie Sie diese Lizenz für Ihre Dokumente verwenden können
Um diese Lizenz in einem Dokument zu verwenden, das sie selbst geschrieben haben, schliessen Sie eine Kopie dieser Lizenz
(eine englische Kopie des Originals anm. des Übersetzers) in Ihr Dokument mit ein, und setzen Sie den folgenden Copyrightund Lizenzhinweis gleich hinter die Titelseite:
Copyright (c) YEAR YOUR NAME
Persmission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU Free Documentation License".
Es folgt eine Übersetzung des oben stehenden Hinweises, der nur zur Klarheit hier angegeben ist ! (anm.: des Übersetzers)
Copyright Jahr Ihr Name
Kopieren, Verbreiten und/oder Modifizieren ist unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder
einer späteren Version, veröffentlicht von der Free Software Foundation, erlaubt.
Es gibt keine unveränderlichen Abschnitte, keinen vorderen Umschlagtext und keinen hinteren Umschlagtext
Eine Kopie des Lizenztextes ist unter dem Titel GNU Free Documentation License enthalten.
(Ende der Übersetzung des Lizenzhinweistextes)
Wenn Sie unveränderlichen Abschnitte, vordere und hintere Umschlagtexte haben, ersetzen Sie die Zeile: "Es gibt keine......
Umschlagtext" durch die Folgende:
Mit den unveränderlichen Abschnitten:
Liste dem den Titeln der unveränderlichen Abschnitte
mit dem vorderen Umschlagtext:
vorderer Umschlagtext
und dem hinteren Umschlagtext:
hinterer Umschlagtext
Wenn Sie unveränderliche Abschnitte, aber keine Umschlagtexte oder irgend eine andere Kombination der drei Bereiche haben,
mischen Sie die verschiedenen Alternativen, daß sie zu Ihren Anforderungen passen.
Wenn Ihr Dokument nicht-triviale Codebeispiele enthält empfehlen wir diese Beispiele parrallel unter einer freien Softwarelizenz
Ihrer Wahl, beispielsweise der GNU General Public License zu lizensieren, um ihren Gebrauch in freier Software zu erlauben.
10.4. Notizen
© 2003 by Daniel Pust, 2004 Lexa
Seite 46
Herunterladen