AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Oberfläche speichern und danach erweitern

Ein Thema von freimatz · begonnen am 23. Mär 2019 · letzter Beitrag vom 24. Mär 2019
Antwort Antwort
freimatz

Registriert seit: 20. Mai 2010
1.383 Beiträge
 
Delphi 11 Alexandria
 
#1

Oberfläche speichern und danach erweitern

  Alt 23. Mär 2019, 10:53
Sorry, mir fiel kein besserer Betreff ein.

Also: Ich habe eine große Anwendung mit einem Menüband mit zig. Reitern die wiederum Gruppen und diese viele Knöpfe und anderes enthalten. Das Menüband entspricht vom Stil dem von Office und ist realisiert mit DevExpress.
Nun kann ein Anwender dieses Menüband konfigurieren wie z.B. Knöpfe der Schnellauswahl hinzufügen, Befehle zu irgend einer Gruppe hinzufügen, Knöpfe löschen etc. Das wird dann in einer Datei "Barmanager.ini" gespeichert und beim nächsten Programmstart wieder geladen. Soweit so gut.

Nun möchte ich dem Reiter Hilfe einige weitere Symbole hinzufügen und diese in einer weiteren Gruppe organisieren. Gedacht, getan. Wenn ich nun die Anwendung neu installiere und starte klappt alles prächtig.
Wenn aber von einer Vorversion noch eine Barmanager.ini da ist wird die geladen und meine neuen Knöpfe erscheinen nicht, die sind ja da nicht drin. Noch schlimmer ist es wenn ich neue Gruppen anlege, dann werden die Inhalte in die falschen Gruppen einsortiert, weil in der ini die nur durchnummeriert werden.

Was hilft ist die Datei vorher zu löschen. Dies bedeutet jedoch dass alle Einstellungen, die ein Anwender möglicherweise gemacht hat, weg sind.

Seitens DevExpress wird nur das Löschen empfohlen.
Das alles selber zur Laufzeit zu machen beim Versionswechsel ist aufgrund der extrem komplexen Struktur mir zu aufwendig.

Noch irgendwelche Ideen?

Geändert von freimatz (23. Mär 2019 um 10:56 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#2

AW: Oberfläche speichern und danach erweitern

  Alt 23. Mär 2019, 11:44
Hmm..

Eine Option währe eine Versionierung..

Spricht, ein zusätzlicher Eintrag in diese INI mit einer Versionsnummer.
Wenn die App geladen und somit seine Menüs generiert wurden, dann kannst Du bei einer neuen Version deiner App schauen, mit welcher die INI als letztes erzeugt wurde und deine 'neuen' Gruppen manuell hinzufügen, wenn die Version in der ini 'alt' ist.

Dies hinzufügen wird nur einmal gemacht und mit dem nächsten Speichern sind deine neuen Gruppen + aktuelle Version in der INI.

Inwieweit dies direkt mit DevExpress möglich ist, weiß ich nicht, eventuell die Lade/Speicherroutine der INI überschreiben..

Ups, überlesen ..
Das alles selber zur Laufzeit zu machen beim Versionswechsel ist aufgrund der extrem komplexen Struktur mir zu aufwendig.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.383 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Oberfläche speichern und danach erweitern

  Alt 23. Mär 2019, 12:28
Das mit der Version in meiner eigenen ini mache ich schon. Ich kann also erkennen ob der Versionswechsel erfolgt.
Der Inhalt der "Barmanger.ini" wird komplett von DevExpress erzeugt.

Habe gerade geschaut wie gross denn so eine ist - 4598 Zeilen
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Oberfläche speichern und danach erweitern

  Alt 23. Mär 2019, 20:35
Zitat:
Der Inhalt der "Barmanger.ini" wird komplett von DevExpress erzeugt.

Habe gerade geschaut wie gross denn so eine ist - 4598 Zeilen
Wäre es eine Überlegung wert das Laden und speichern der GUI nochmal zu überdenken? Ohne Vollautomatismus und alles manuell? Das hat sich bei mir immer bewährt.
Und so oft ändert man die GUI während der Entwicklung oder den Aufbau am Ende des Tages ja auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#5

AW: Oberfläche speichern und danach erweitern

  Alt 24. Mär 2019, 09:44
Moin...
Zitat:
realisiert mit DevExpress
...du sitzt im gleichen Boot. Ich habe ein Projekt übernommen wo die komplette GUI in "Layouts" gespeichert wird. (Bar, Grids, LayoutControls).
In diesem Zusammenhang habe ich die gleichen Probleme. Wenn ich im Layout eine Eingabe hinzufüge, ist sie im "Layout" nicht zu sehen. Das heißt für die User die Layouts neu zusammenbauen... Grade in der Entwicklung, wo auch der Workflow geändert wird, traue ich mir nicht zu sagen, "Einmal das Layout neu!".

Fazit:
Wenn ich es könnte, würde ich die GUI statisch gestalten. Dieser Zirkus mit "vom User anzupassen"...Wenn man sonst keine Probleme hat, kann man das machen.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Oberfläche speichern und danach erweitern

  Alt 24. Mär 2019, 11:26
Ich finde anpassbare Oberflächen für den User ein super Feature. Klar, für den Programmierer ist das um so mehr Aufwand.

Aber wäre es nicht möglich, die "Standardeinstellungen" die durch dich als Entwickler implementiert werden in eine eigene Datei zu speichern und dann alle Einstellungen vom User in eine separate Datei? Diese könnte dann im Nachgang eventuell gemerged werden. So werden die User Einstellungen bei jedem Update beibehalten und die Systemeinstellungen können erweitert werden.

Klar wäre das dann Programmieraufwand, aber wenn man sein Programm so gestalten und flexibel sein will, dann muss man eben Zeit investieren. Dieses Erweitern von Funktionen kenne ich von einer großen Software. Dort kann man seine eigenen (erweiterten) Lösungen an bestehende anhängen. Ist eigentlich ein ganz gutes Konzept.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz