Zitat:
<Startmeldung zum Anlegen einer INI-Datei>
Hab auf Abbrechen gedrückt und dachte ich kann erstmal so...
Hätte mir also eher ein
[Ja] [Nein]
oder
[Ja] [Nein] [Abbrechen]
gewünscht, wo das Programm bei "Nein" auch ohne gespeicherte Settings läuft. (es soll noch Leute geben, die CDs benutzen oder USB-Sticks mit Schreibschutz
)
Das Problem ist wie folgt: Die meisten wollen die Konfiguration ändern können, daher ist die Standardeinstellung, dass man eine Konfiguration schreiben kann (schon alleine wegen "Zuletzt geöffnete Dateien"). Eine mögliche Option wäre in der INI-Datei zu speichern, dass sie als schreibgeschützt betrachtet werden soll. Aber man kann nicht einfach still fehlschlagen wenn Schreiben nicht möglich ist (weil das Medium/Verzeichnis schreibgeschützt ist). Aus diesem Schreibschutz kann man nicht schließen ob dies Absicht ist oder nicht, daher muss dies als Fehler gemeldet werden. Diesen Fehler immer wieder zu melden wäre aber lästig für den Benutzer, und daher müsste man zumindest einmal in die INI-Datei schreiben, dass zukünftig nichts in sie gespeichert werden soll.
Das Problem ist natürlich, dass sich eventuell HxD schon auf einem schreibgeschützten Medium befindet, wenn das passiert. Daher wäre es praktischer, wenn ein Setupprogramm das Kopieren auf ein Medium erledigen würde und eine INI-Schreibgeschützt-Option explizit anbietet.
Ich denke so werde ich es machen, ob in diesem Release oder dem nächsten wird sich noch zeigen.
Werden das mit der Zeit so viele Settings, dass die in ein Unterverzeichnis müssen?
Der Sinn ist dass man gerade bei der portablen Version die EXE-Dateien möglichst sauber und getrennt von all dem Rest hat. Das ist übersichtlicher und erspart einem extra Verknüpfungen zu erzeugen die dann ja doch wieder nur in einem extra Verzeichnis sind (sonst hat man keinen Vorteil bei der Übersicht).
Unter anderem kommen z.B. noch Übersetzungen in ein Lang-Verzeichnis hinzu (momentan 23), daher sollte das alles getrennt sein. Ein Ordner wird auch automatisch anders sortiert als Dateien (immer vor oder nach Dateien, nie gemischt), wodurch es übersichtlicher wird. Ein weiterer Grund ist, dass konzeptionell Einstellungen und Programme nicht im gleichen Verzeichnis sein sollten, wenn man z.B. aus Sicherheitsgründen Rechte einschränken will. Also: es bleibt so :p
Das in der .lang war so viel, dass es nicht in die .ini passte?
Das ist Teil des Systems das sich in das Delphi-Sprachdateiladen einklinkt. Dieser Teil passiert sehr früh im System, und man sollte so wenige Units wie möglich (besonders solche mit Abhängigkeiten) laden, so ähnlich wie bei Memorymanagern. Ist eine
Unit dabei die resourcestrings enthält kann man sich nicht mehr einklinken.
Der Grund für diesen Hook ist unter anderem, dass man ein extra Lang-Verzeichnis angeben kann um nicht das Hauptverzeichnis mit Übersetzungen "zuzuspammen".
Wegen dem frühen Systemhook ist es unpraktisch das mit der deutlich komplexeren Klasse die Einstellungen (in INI, Registry,
XML) speichert (und Fehler meldet und damit resourcestrings hat) zu verbinden. Da es sowieso einen Settings-Ordner gibt ist das ja kein Problem
Wie gesagt bisher 23 Sprachen und dann noch die 64- und 32-Bit-Version, irgendwann sieht man nichts mehr. Das soll so gehen: Ordner auf, kurzer Blick, Doppelklick => HxD ist offen. Daher die Ordner.
PS: Das HxD Hex Editor.lang wird schon vor diesem Dialog gespeichert.
Guter Hinweis.