PAF-5.1-Patch

Neu (23.05.01): Update 5.1.7.0 nach 5.1.12.0

Das Ahnenforschungsprogramm Personal Ancestral File ("PAF") für Windows ist in der Version 5.1 im März 2001 erschienen.
Es ist nach "PAF 4.0" vom Februar 2000 nun die 2. Version, die neben der englischsprachigen Variante in einer deutschsprachige Version erhältlich ist.
"PAF" hat einige interessante Leistungsmerkmale. Unter anderem bietet es ein ein flexibles Konzept an, die erfassten Daten in verschiedenartigen Berichten auszudrucken oder sich Webseiten unterschiedlicher Art erzeugen zu lassen.

Manche Anwender empfinden die in den (deutschsprachigen) Berichten und Webseiten benutzten Formulierungen als verbesserungsbedürftig. Um diesem Wunsch der Anwender nach Umformulierung entgegen zu kommen, wird vom Programm die Möglichkeit angeboten, die Formulierungen den eigenen Vorstellungen anzupassen. Allerdings trifft dies nicht für alle Fälle zu.

Inhalt dieser Seite ist, zu beschreiben, wie man dennoch die vom Programm vorgegebenen Formulierungen ändern kann.

Schon die deutsche Variante der Version 4 von PAF hatte ein paar Formulierungsfehler bzw. -schwächen. Beispiel: Wenn man für eine Person den Beruf "Schuster" eingegeben hatte, wurde bei den Berichten von PAF eine Formulierung benutzt in der Art "Mustermann war beschäftigt Schuster" - es fehlte schlichtweg das Wörtchen "als". Dieses Verhalten war ärgerlich und konnte im Programm nicht unmittelbar verändert werden.

Etwas zum Hintergrund

In "PAF" und anderen Ahnenforschungsprogrammen werden Dinge wie z.B. Geburt und Tod als "Ereignisse" betrachtet.
Ein Ereignis kann ein Datum, einen Ort und eine inhaltliche Beschreibung umfassen.

Beispiele von Ereignissen:

1. "Beruf"
Bei diesem Ereignis wird meist auf die Angabe von Datum und Ort verzichtet und ausschließlich die Beschreibung erfasst, also z.B. "Landwirt".

2. "Taufe"
Bei diesem Ereignis wird man Datum und Ort erfassen und keine weitere Beschreibung formulieren.

Das letztgenannte Beispiel "Taufe" soll hier weiterhin als Beispiel dienen.

Allerdings kommt im Falle der Taufe noch eine weitere Besonderheit hinzu.
"PAF" bezeichnet als "Taufe" ein Ereignis, das bei den Mormonen eine eigene Bedeutung hat, die von der Bedeutung abweicht, die eine Taufe im Sinne der großen christlichen Kirchen hat.
Die "Taufe", wie sie von Katholiken und Protestanten verstanden wird, bezeichnet "PAF" als "Kleinkindtaufe".
Somit wird auch bei den Berichten der Begriff "Kleinkindtaufe" benutzt, der aber unüblich beim Großteil der Christen ist.
Es ist falsch, eine solche Taufe im Sinne der großen Kirchen bei der Erfassung in PAF als Ereignis "Taufe" zu behandeln, man sollte es als "Kleinkindtaufe" erfassen (das hat etwas mit der zugeordneten "GEDCOM"-Kategorie zu tun).

Anderseits ist es ärgerlich, dass dann in den Berichten der Begriff "Kleinkindtaufe" benutzt wird. In den Berichten möchten also viele Anwender den Begriff "Kleinkindtaufe" durch das Wörtchen "Taufe" ersetzt wissen. Das aber erlaubt PAF nicht.

Wenn man in PAF 5.1 Ereignis-Texte ändern will, geht man auf den Menüpunkt "Bearbeiten" - "Ereignisse einer Person". Um beim Beispiel "Kleinkindtaufe" zu bleiben: Nun ist aus der dargestellten Liste der Eintrag "Kleinkindtaufe" auszuwählen und mit "Bearbeiten" kommt man in die folgende Maske:



Bild 1

Wie man sieht, beinhalten die Verb-Ausdrücke den Begriff "Kleinkindtaufe".
Ziel der folgenden Anleitung ist zu zeigen, wie man diesen Begriff ersetzt durch den Begriff "Taufe", so dass als Ergebnis die Maske wie folgt aussieht:



Bild 2

In "PAF" werden Ereignisse in 2 konzeptionell grundsätzlich verschiedenen Kategorien behandelt, auch wenn das zunächst nicht offensichtlich ist, sich also dem Anwender nicht unmittelbar erschließt und die Dokumentation diese Differenzierung nur unzureichend beschreibt. Zitat aus der PAF-5.1-Online-Hilfe: "Ein standardmäßig eingerichtetes Ereignis können Sie nicht bearbeiten. Fügen Sie statt dessen ein neues benutzerdefiniertes Ereignis zur Liste hinzu." Dieser Empfehlung, ein neues benutzerdefiniertes Ereignis zu definieren, will ich mich aus verschiedenen Gründen nicht anschließen.

Zu jeder Art von Ereignis kennt "PAF" mehrere damit zusammenhängende Zeichenketten ("Verb-Ausdrücke"). Hier nun die 2 Kategorien von Ereignissen:

1. Benutzerdefinierte Ereignisse

Diese sind frei definierbar und die zugehörigen Zeichenketten sind beliebig zu ändern.
Sie entsprechen keiner GEDCOM-Kategorie und würden ignoriert werden, wenn man versuchen würde, per GEDCOM-Export und nachfolgendem Import in einem anderen Werkzeug diese Ereignisse weiter zu erhalten.
Sie sind nur innerhalb von PAF von Interesse.
Die Daten dieser Ereignisse werden in der *.paf-Datei gespeichert, das heißt, sie sind pro PAF-Datei ggf. wieder neu zu definieren.

2. "standardmäßig eingerichtete Ereignisse"

Diese sind nicht frei definierbar und die zugehörigen Zeichenketten sind nicht zu ändern - der "OK"-Button in der entsprechenden Bearbeitungs-Maske ist deaktiv (siehe Bild 1 oder Bild 2).
Sie entsprechen einer GEDCOM-Kategorie und sollten erhalten bleiben, wenn man per GEDCOM-Export und nachfolgendem Import in einem anderen Programm diese Ereignisse weiter nutzen möchte.
Sie sind also nicht nur innerhalb von PAF von Interesse.
Die Daten dieser Ereignisse sind von PAF vorgegeben und können nicht geändert werden.

- - -  Fast nicht !  - - -

Wie gesagt, diese Daten sind innerhalb des Programms nicht zu ändern. Man kann sie aber ändern, wenn man die entsprechende Programm-Datei mit einem entsprechenden Werkzeug modifiziert.
Die Datei heißt "paf5de.dll" und ist im Installations-Verzeichnis von PAF zu finden.
Ein "entsprechendes Werkzeug" wäre ein sogenannter "resource editor". Ich werde im folgenden dafür den Begriff "Ressourcen-Editor" benutzen.
Ein "Ressourcen-Editor" kann die sog. "Ressourcen" eines Windows-Programms (*.exe oder *.dll) ändern.

Grob gesagt besteht ein Windows-Programm aus einer *.exe-Datei und ggf. aus weiteren *.dll-Dateien.
Diese *.exe- und *.dll-Dateien sind in sich in 2 Teile unterteilt: dem eigentlichen Programm-Code (da steckt also die ganze Logik drin) und einem "Ressourcen"-Teil.
Unter "Ressource" versteht man all die statischen Teile, die nichts mit der Programm-Logik zu tun haben: Bildschirm-Masken, Icons, Versionsinfo, Cursor, Menüs, Zeichenketten etc.
Mit einem Ressourcen-Editor kann man diese Bestandteile modifizieren, ohne an der Programmlogik etwas zu ändern.
Solche Ressourcen-Editoren können Bestandteil von "integrierten Software-Entwicklungsumgebungen" sein oder aber als eigenständige Programme erhältlich sein.

Ein Beispiel für einen Ressourcen-Editor ist "Resource Hacker", ein frei verfügbares Werkzeug, das von hier geladen werden kann.

Man braucht keine Kenntnisse der Softwareentwicklung, um ein solches Werkzeug zu nutzen. Einem absoluten Computer-Neuling sei aber die Benutzung nicht unbedingt angeraten.

Ich warne EINDRINGLICH davor, ein ungeeignetes Werkzeug, wie z.B. einen Text- oder sog. "Hex"-Editor für diese Zwecke zu gebrauchen!
Ein Ressourcen-Editor ist ein Werkzeug, das die internen Strukturen der Ressourcen einer EXE- bzw. DLL-Datei kennt - genau das ist erforderlich. Jedes andere Werkzeug richtet Schaden an!

Natürlich sind die Lizenz-Bestimmungen von PAF zu beachten. Auf alle Fälle verbietet es der Hersteller, den Programm-Code zu modifizieren. Ob damit auch die Ressourcen gemeint sind - nun darüber könnte man sich streiten. Diesen Streit möchte ich aber nicht führen. Das heißt, ich biete Anleitungen, wie man für sich selbst diese Ressourcen ändern kann, aber ich werde auf keinen Fall modifizierte Programm-Teile in Umlauf bringen. Und ich rate niemandem, veränderte Programm-Teile in Umlauf zu bringen.
Selbstverständlich ist jeder, der Programm-Teile modifiziert, für diese Veränderungen selbst verantwortlich.

Zurück zur Sache.

Es folgt eine Schritt-für-Schritt-Anleitung, wie man anhand eines Ressourcen-Editors (am Beispiel "Resource Hacker") Teile von PAF so abändern kann, dass Ereignis-Texte verändert werden.

Bild 3

Hiermit ist das Beispiel abgeschlossen. Nun kann man noch weitere Änderungen in der beschriebenen Vorgehensweise durchführen.

Einige Dinge sollten aber bei der Arbeit mit "Resource Hacker" beachtet werden:

Wenn man die Dinge mit Umsicht angeht (eine solche Vorgehensweise sollte bei Ahnenforschern ohnehin vorliegen), kann eigentlich nichts schief gehen.
Sollte wider Erwarten doch irgendein Problem auftreten, kann man durch Restaurieren der ursprünglichen DLL wieder den alten Zustand herbei führen.

Zum Schluß möchte ich betonen, dass ich das Programm PAF sehr schätze und sowohl die Leistungen der Entwickler anerkenne als auch das Angebot des Herstellers würdige, das Programm kostenfrei zu nutzen.
Die Anleitung soll helfen, den Nutzwert des Programms zu erhöhen und zur weiteren Verbreitung des Programms beizutragen.
Mich würde es sehr freuen, wenn der Hersteller das Konzept der 2 unterschiedlichen Arten von Ereignissen und deren Modifikationsmöglichkeiten überdenken würde und in einer zukünftigen Version von PAF dem Anwender die Möglichkeit bieten würde, alle Ereignisse zu ändern. Dann würde ich liebend gerne diese Anleitung wieder löschen.

Update 5.1.7.0 nach 5.1.12.0

Am 23. Mai 2001 ist eine neue Version von PAF 5 erschienen. Die Version trägt die Nummer 5.1.12.0. Die Vorgängernummer war 5.1.7.0.
Nun mag es "wagemutige" Zeitgenossen geben, die Änderungen an "paf5de.ll" der Version 5.1.7.0 gemacht haben und sich nun fragen, ob denn diese DLL auch unter 5.1.12.0 funktioniert.
Ich habe diese DLL in diesen beiden Versionen systematisch verglichen. Die Änderungen sind hier dokumentiert.
Es sind also wenige "kosmetische" Änderungen gemacht worden, viele Schwächen aus der Vorgängerversion sind uns erhalten geblieben.
Allerdings gibt es eine wesentliche Änderung im Dialog 369. Dort sind 2 Elemente hinzugekommen. Es betrifft einen Dialog, der erscheint, wenn man bei der Eingabe eines Namens den Nachnamen nicht eindeutig mit Schrägstrichen markiert. Beispiel: "Erika /Muster/mann/".
In Folge eines solchen Eingabefehlers erscheint ein Dialog, der unter PAF 5.1.12.0 so aussieht:


In PAF 5.1.7.0 fehlt die Zeile "Nachname:  Muster". Dort wird in 5.1.12.0 abhängig von den Eingaben dynamisch dargestellt, wie das Programm die Eingabe interpretiert, also welcher Teil als Nachname erkannt wird.

Wenn man eine modifizierte DLL der Vorgängerversion nimmt und der Version 5.1.12.0 "unterschiebt", wird in dieser Situation folgende Fehlermeldung erscheinen:


Respekt an die Entwickler von PAF!
Ich hätte erwartet, dass das Programm an dieser Stelle abstürzt.

Man kann nun wie oben beschieben, wie gehabt loslegen und die DLL modifizieren. Die von mir beschrittene Alternative:
Ich habe die "alte", von mir modifizierte DLL genommen und die fehlenden 2 Zeilen in Dialog 369 ergänzt. Fertig!

Hier die 2 Zeilen:

CONTROL "Nachname:", 1922, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 8, 37, 40, 9 
CONTROL "Text", 1923, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 49, 37, 235, 9 

Viel Spaß und Erfolg!

Eckhard Henkel

P.S.: Sollten Sie diese Darstellungen nützlich finden, Verbesserungsvorschläge oder sonstige Kommentierungen haben, schreiben Sie an die folgende EMail-Adresse:

[mail icon] eckhard.henkel@t-online.de

© Copyright Eckhard Henkel
Letzte Änderung am 29.12.11