Talk:Multiplatform Programming Guide/de
Hallo erstmal! Ich habe mich für diese Anmerkung hier registriert - vielleicht vermag ich auch hier und da etwas beizutragen. Denn so sehr ich Pascal und Lazarus liebe - die bisweilen allzu knappe Dokumentation bereitet mir oft genug Kopfschmerzen. Umso herzlicheren Dank an die Autoren dieses Wikis!
Ich will (zumal als Wiki-Newbie) nicht gleich im Text editieren, da mir nicht klar ist, ob hier womöglich Versionsunterschiede einen Streich spielen. Drum erstmal hier unter Diskussion.
Ich verwende Lazarus 1.2.0 und fpc 2.6.2 unter Debian Wheezy.
Die Unit appsettings (die ich wirklich nützlich finde, vielen Dank!) enthält zwei Fehler: 1) befindet sich im uses-Teil ein Verweis auf "constants", mit dem der Compiler nichts anfangen kann. Diese uses-Anweisung ist aber auch unnötig, streicht man sie ersatzlos, funktioniert's. 2) Der Bezeichner in der zweituntersten Zeile (finalization) "FreeAndNil(vTranslations);" ist falsch, es muß "FreeAndNil(vConfigurations);" heißen.
Dann im Abschnitt "Unix kennt kein 'Programmverzeichnis'": Hier bin ich über die GNU-Linux-Ausgaben von GetAppConfigDir und GetAppConfigFile gestolpert, die irgendwie nicht konsistent schienen. Daher habe ich die Ausgabevarianten nochmal selbst getestet und dabei folgende Ergebnisse erhalten:
GetAppConfigDir(true); ==> /etc/MyProg/ GetAppConfigFile(true); ==> /etc/MyProg.cfg GetAppConfigDir(false); ==> /home/MyName/.config/Myprog/ GetAppConfigFile(false); ==> /home/MyName/.config/MyProg.cfg
Hinzu kommt noch eine weitere Variante, da GetAppConfigFile noch mit dem zusätzlichen boolschen Parameter "SubDir" aufgerufen werden kann. Der ist per Voreinstellung False, d.h. "GetAppConfigFile(true)" ist dasselbe wie "GetAppConfigFile(true, false)". Setzt man "SubDir := true", ergibt das folgende Ausgabe:
GetAppConfigFile(true, true); ==> /etc/MyProg/MyProg.cfg GetAppConfigFile(false, true); ==> /home/MyName/.config/MyProg/MyProg.cfg
Also auf das Beispiel im Wikitext umgesetzt:
WriteLn(GetAppConfigDir(True)); ergibt nicht /etc sondern /etc/project1/ WriteLn(GetAppConfigDir(False)); ergibt nicht /home/felipe/project1 sondern /home/felipe/.config/project1 WriteLn(GetAppConfigFile(True)); ergibt /etc/project1.cfg WriteLn(GetAppConfigFile(False)); ergibt nicht /home/felipe/.project1 sondern /home/felipe/.config/project1.cfg
Wie gesagt, ich scheue mich als ungeübter Wikianer etwas, in den Texten anderer Leute rumzufuhrwerken. Andererseits kann ich das schon machen, wüßte aber vorher gerne, ob Ihr inhaltlich damit einverstanden seid.
Schöne Grüße--Ruediger 14:42, 25 March 2014 (CET)
Hab's jetzt mal geändert. Ich finde die Gliederung der GetAppConfigDir/File-Ergebnisse so übersichtlicher, das Beispielprogramm (WriteLn(GetAppConfigDir(True));) eher entbehrlich. Ich habe es allerdings stehenlassen, um den Windows-Teil nicht umschreiben zu müssen. Vielleicht kann jemand die Windows-Ausgaben überprüfen und ggfls. anpassen (ich habe keinen Windows-Rechner)? Auf der englischsprachigen Seite sind auch die abweichenden Ergebnisse von Win98 (was wohl eher obsolet ist) als auch beim Mac OS X aufgeführt.--Ruediger 23:15, 27 March 2014 (CET)