Autor Beitrag
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 300
Erhaltene Danke: 28

Windows 8.1
Delphi 7 Pers.
BeitragVerfasst: Do 23.06.16 22:30 
Hallo,

in meinen Programmen möchte ich mir oft etwas für die nächsten Programmaufrufe merken, z. B. die eingestellte Sprache, einen Standard-Pfadnamen oder die Namen der letzten geöffneten Dateien. Früher habe ich das in die Registry geschrieben, inzwischen finde ich aber INI-Dateien praktischer. Dazu meine Fragen:

a) Weiß jemand, ob es dafür Regeln bei Windows gibt, wann man was nehmen sollte?
b) In welches Verzeichnis packt man am besten die INI-Datei? Ich nehme immer das Verzeichnis, in dem die *.exe liegt. Korrekter wäre es wohl, ein auf einen User bezogenes Verzeichnis zu wählen.

Viele Grüße
GuaAck
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18694
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 23.06.16 22:39 
Die Regel lautet für Einstellungen die Registry zu nehmen, für größere Daten ein Verzeichnis im Verzeichnis für Anwendungsdaten.

Zur INI und den Speicherorten findest du hier Infos:
www.entwickler-ecke....p=541637&view=dl

Für diesen Beitrag haben gedankt: GuaAck
GuaAck Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 300
Erhaltene Danke: 28

Windows 8.1
Delphi 7 Pers.
BeitragVerfasst: Do 23.06.16 23:27 
Hallo Jaenicke,

genial!!!!

Gruß
GuaAck
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6322
Erhaltene Danke: 127

Windows 7 + Windows 10
Tokyo Prof + CE
BeitragVerfasst: Fr 24.06.16 07:23 
Prinzipiell sehe ich das auch so, wie user profile iconjaenicke.
Allerdings gibt es mMn Ausnahmen.

Bei uns ist es erforderlich, einige Einstellungen zentral im Netzwerk zu speichern.
Dafür haben wir zwei Verfahren.
Einige Einstellungen sind in unserer Datenbank hinterlegt und andere in einem zentralen Verzeichnis auf einem unserer Server.

Natürlich kann man alle Einstellungen lokal speichern. Das kann aber Probleme bereiten.
Einfaches Beispiel:
Ein Server fällt aus und einige Programme müssen aber darauf zugreifen, um bestimmte Aktionen auszuführen. Wir haben aber einen Ersatz-Server, der das übernehmen kann, aber die IP oder der Name ist anders (nur so als Beispiel). Jetzt kann von uns einfach die zentrale Einstellung angepasst werden und alles läuft "normal" weiter.

Wären die Daten lokal gespeichert gewesen, hätte man viel zu tun gehabt (bei uns sind es ca. 100 Arbeitsplätze). Wir haben zwar server-basierte Profile, aber auch das hätte viele Eingriffe erfordert.

Nun könnte man argumentieren, dass die lokalen Einstellungen mit den zentralen abgeglichen werden können. Aber wenn ich das machen muss, kann ich gleich die zentralen Einstellungen nehmen.

Es ist also auch eine Frage, was mit den Einstellungsdaten erreicht werden soll.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18694
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.06.16 10:27 
Dafür dient in meiner Liste ja das Roaming Profil. Und wenn man die Daten wirklich woanders ablegen möchte, kann man ja eine entsprechende Umleitung in einer Datei im gleichen Verzeichnis oder an den beschriebenen Stellen ablegen, woraufhin man dann auf diese Stelle schaltet für das Auslesen der weiteren Einstellungen.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6322
Erhaltene Danke: 127

Windows 7 + Windows 10
Tokyo Prof + CE
BeitragVerfasst: Fr 24.06.16 10:49 
Im Prinzip gebe ich dir Recht, aber in meinem Beispiel sind es keine Benutzer-Einstellungen sondern Einstellungen für alle Benutzer im Netzwerk.
Ich müsste also nach deinem Verfahren zwei Einstellungsdateien verarbeiten statt nur einer. Hinzu kommt, dass ein neuer Benutzer der Anwendung erstmal die einen Einstellungsdatei bekommen muss, um zu wissen, wo die richtige Einstellungsdatei ist.

Das ist alles machbar und konzeptionell auch ein guter Weg, aber in unserer Konstellation mit Kanonen auf Spatzen geschossen. Unsere Anwendung "weiß", wo die Einstellungen stehen.

Bei wirklich individuellen Benutzer-Einstellungen bin ich allerdings vollständig bei dir.