Einstellungen für Applikationen verwalten
-
- Beiträge: 1062
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Einstellungen für Applikationen verwalten
Hi
Für jedes größere Projekt fallen etliche Einstellungsparameter an.
Faben, Flags diverse Auswahlmöglichkeiten, Schalter die den Programmablauf beeinflussen etc etc.
Also so etwas ähnliches wie in Lazarus bei Project-Project Options oder Tools-Options kommt. Ein Fenster mit einer Navigation durch verschiedene Themen und Eingabemöglichkeiten. Da kommt schon einiges zusammen. Eben auch an dahinter liegender Programmlogik -- viel Code in einer Unit.
Meine Frage: Wie geht ihr das an? Für jedes Thema ein eigenes Form, Frame oder einen Tabreiter? Oder irgendwie generisch?
In die Datenbank oder in irgendwelche Dateistrukturen speichern (xml, json, ini)?
Netzwerk und Multiusertauglich?
Nur für ein Projekt zugeschnitten oder wiederverwendbar ?
Das ist nur die Seite für die Eingabe -- wie haltet ihr die Informationen im Programm dann vor? Singleton als Settings-Objekt? Darin Datenbankzugriffe? Alles in ein Memdataset laden und jedemal eine Suche? Oder für jedes Attribut ein Property?
Tips und Erfahrungen? Warnungen? Performanceprobleme?
THX
Für jedes größere Projekt fallen etliche Einstellungsparameter an.
Faben, Flags diverse Auswahlmöglichkeiten, Schalter die den Programmablauf beeinflussen etc etc.
Also so etwas ähnliches wie in Lazarus bei Project-Project Options oder Tools-Options kommt. Ein Fenster mit einer Navigation durch verschiedene Themen und Eingabemöglichkeiten. Da kommt schon einiges zusammen. Eben auch an dahinter liegender Programmlogik -- viel Code in einer Unit.
Meine Frage: Wie geht ihr das an? Für jedes Thema ein eigenes Form, Frame oder einen Tabreiter? Oder irgendwie generisch?
In die Datenbank oder in irgendwelche Dateistrukturen speichern (xml, json, ini)?
Netzwerk und Multiusertauglich?
Nur für ein Projekt zugeschnitten oder wiederverwendbar ?
Das ist nur die Seite für die Eingabe -- wie haltet ihr die Informationen im Programm dann vor? Singleton als Settings-Objekt? Darin Datenbankzugriffe? Alles in ein Memdataset laden und jedemal eine Suche? Oder für jedes Attribut ein Property?
Tips und Erfahrungen? Warnungen? Performanceprobleme?
THX
- Ally
- Beiträge: 282
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: Einstellungen für Applikationen verwalten
Hallo charlytango,
ich habe mir dafür eine kleine Unit gebaut, die String, Integer, Boolean, usw. in die Registry schreiben und daraus lesen kann.
Das Ganze funktioniert auch unter Linux, dort werden Registry-Zugriffe automatisch im Order .config in einer entsprechenden XML gespeichert.
Im Anhang ein Beispiel.
Gruß Roland
ich habe mir dafür eine kleine Unit gebaut, die String, Integer, Boolean, usw. in die Registry schreiben und daraus lesen kann.
Das Ganze funktioniert auch unter Linux, dort werden Registry-Zugriffe automatisch im Order .config in einer entsprechenden XML gespeichert.
Im Anhang ein Beispiel.
Gruß Roland
- Dateianhänge
-
ProgSet.zip
- (326.67 KiB) 91-mal heruntergeladen
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Einstellungen für Applikationen verwalten
Registry: igitt.
In Windows geht das doch auch mit den XML-Dateien.
Es gibt (in Windows) Standard-Directories für die verschiedenen Verwendungs-Zwecke der Konfig-Daten eines Programms:
- nur von Admin schreibbar, immer lesbar
- User-spezifisch lesbar und schreibbar
- von allen Usern lesbar und schreibbar
-Michael
In Windows geht das doch auch mit den XML-Dateien.
Es gibt (in Windows) Standard-Directories für die verschiedenen Verwendungs-Zwecke der Konfig-Daten eines Programms:
- nur von Admin schreibbar, immer lesbar
- User-spezifisch lesbar und schreibbar
- von allen Usern lesbar und schreibbar
-Michael
- Ally
- Beiträge: 282
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: Einstellungen für Applikationen verwalten
Hallo mschnell,
ja dieser Registry igitt Glaubenskrieg wurde schon unzählige male geführt.
Natürlich kann jeder seine Einstellungen dort hin schreiben wo er möchte und das Betriebssystem ihm das (noch) erlaubt.
Unter Windows ist die Registry eine Möglichkeit die Einstellungen komfortabel und zukunftssicher zu verwalten.
Ich nehme an man hat registry deshalb in freepascal auch so implementiert das es cross-platform ist. https://wiki.freepascal.org/fcl-registry
Für mich ist das eine super Lösung. Egal welches BS, die Einstellungen werden immer am richtigen Ort abgelegt.
Wer dann selbst etwas zusammenfrickeln möchte, der hat ja alle Möglichkeiten.
Mein Beispiel soll einfach nur zeigen wie einfach das Leben sein kann.
Grüße Roland
ja dieser Registry igitt Glaubenskrieg wurde schon unzählige male geführt.
Natürlich kann jeder seine Einstellungen dort hin schreiben wo er möchte und das Betriebssystem ihm das (noch) erlaubt.
Unter Windows ist die Registry eine Möglichkeit die Einstellungen komfortabel und zukunftssicher zu verwalten.
Ich nehme an man hat registry deshalb in freepascal auch so implementiert das es cross-platform ist. https://wiki.freepascal.org/fcl-registry
Für mich ist das eine super Lösung. Egal welches BS, die Einstellungen werden immer am richtigen Ort abgelegt.
Wer dann selbst etwas zusammenfrickeln möchte, der hat ja alle Möglichkeiten.

Mein Beispiel soll einfach nur zeigen wie einfach das Leben sein kann.

Grüße Roland
-
- Beiträge: 1062
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Einstellungen für Applikationen verwalten
Hallo Roland,Ally hat geschrieben: Mi 14. Apr 2021, 10:20 ich habe mir dafür eine kleine Unit gebaut, die String, Integer, Boolean, usw. in die Registry schreiben und daraus lesen kann.
Das Ganze funktioniert auch unter Linux, dort werden Registry-Zugriffe automatisch im Order .config in einer entsprechenden XML gespeichert.
Im Anhang ein Beispiel.
das beantwortet einmal meine Frage nach dem Speichermedium.
Nur... wie machst du das Interface zur Eingabe?
Generisch? Frames? Forms? Tabreiter etc etc ?
- kralle
- Lazarusforum e. V.
- Beiträge: 1199
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Einstellungen für Applikationen verwalten
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
- Ally
- Beiträge: 282
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: Einstellungen für Applikationen verwalten
Hallo charlytango,
Meinst du z.B. ein Fenster in dem der Anwender Einstellungen auswählen kann?
Wenn ja, dann kann man das sicherlich nicht allgemeingültig beantworten.
Starte doch einfach mal alle Anwendungen die du so auf deinem Rechner hast und schau dir an wie es dort gelöst ist.
Was dann gut zu deinem Programm passt und dir am besten gefällt, das ist es dann.
Gruß Roland
Ich bin mir nicht sicher ob ich das jetzt richtig verstehe.Nur... wie machst du das Interface zur Eingabe?
Generisch? Frames? Forms? Tabreiter etc etc ?
Meinst du z.B. ein Fenster in dem der Anwender Einstellungen auswählen kann?
Wenn ja, dann kann man das sicherlich nicht allgemeingültig beantworten.
Starte doch einfach mal alle Anwendungen die du so auf deinem Rechner hast und schau dir an wie es dort gelöst ist.
Was dann gut zu deinem Programm passt und dir am besten gefällt, das ist es dann.

Gruß Roland
-
- Beiträge: 1062
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Einstellungen für Applikationen verwalten
Hallo Roland,Ally hat geschrieben: Do 15. Apr 2021, 10:16 Ich bin mir nicht sicher ob ich das jetzt richtig verstehe.
Meinst du z.B. ein Fenster in dem der Anwender Einstellungen auswählen kann?
Wenn ja, dann kann man das sicherlich nicht allgemeingültig beantworten.
Egal welches Programm man schreibt, fallen immer wieder Einstellungs-daten mit denen Ablauf, Aussehen und Funktion etc beeinflusst werden.
Also Options oder Einstellungen.
Für etwas kleineres mit ein paar Einstellungen pinselt man ein Formular, nimmt je nach Gusto eine Komponente wie TXMLPropStorage oder TINIPropStorage oder schreibts in die Registy oder meinetwegen auch mit JSon irgendwie ins Internet. Alles keine Hexerei und Standard.
Nun hab ich aber vielleicht eine größere Applikation mit sagen wir mal 100 oder mehr Einstellungsmöglichkeiten. Will die vielleicht auch benutzerbezogen im Netzwerk verwalten. Möchte die immer wieder benutzten Einstellungen (Pfadeinstellungen, Datenbankanbindung, Farbverwaltung, skins, uvam) nicht immer neu machen sondern irgendwie aus einem Repository generieren.
Möchte dem Benutzer oder Admin der da gerade was einstellt auch Hilfs-und Erklärungstexte mitgeben (ich zb sehe kaum in eh nicht mitgelieferte Dokus und weiß bei einem Programm gern was der schalter da gerade auslöst).
Das ganze soll dann auch noch ansprechend dem Benutzer/Admin präsentiert werden und vom Programmierer idealerweise auch nicht immer neu geschrieben werden müssen.
Ich würde Datenbank-getrieben und generiert bevorzugen- einfach als Coder in einem Frontend die nötigen Einstellungen zusammen klicken oder neue erstellen und wiederverwenden. Samt dazu gehörendem Objekt das mir die Applikationsübergreifenden Einstellungen verwaltet.
Ich vermisse solche Ansätze/Komponenten in Lazarus schmerzlich, denn ich kann mir nicht vorstellen dass es dafür keinen Bedarf gibt. Alleine schon aus dem RAD Ansatz her.
Hatte so etwas, bin aber nicht zufrieden damit (funktional und optisch) -- deswegen fragte ich wie andere das gelöst haben.
LG
Karl