AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Einstellungen speichern und verwalten
Thema durchsuchen
Ansicht
Themen-Optionen

Einstellungen speichern und verwalten

Ein Thema von Lord Dave · begonnen am 13. Nov 2005 · letzter Beitrag vom 15. Nov 2005
Antwort Antwort
Seite 2 von 4     12 34      
Lord Dave

Registriert seit: 5. Sep 2004
Ort: Offenburg
44 Beiträge
 
#11

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 11:38
Was ist mit dem Userverzeichnis \ Anwendungsdaten?
Wozu ist das von Microsoft erdacht?

Aber mal um ein bißchen von dem Speichern wegzukommen, die benötigten Daten werden erst bei Bedarf eingelesen, versteh ich das richig?

Ich habe immer gerne Methoden wie saveSettings() oder loadSettings() die ich auf einzelne Forms anwende. Oft habe ich ein globales Objekt in dem ich alle Einstellungen verwalte, das ich dann einfach an die Methode übergebe und diese die benötigten Informationen ausliest.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 11:41
Zitat von Lord Dave:
Was ist mit dem Userverzeichnis \ Anwendungsdaten?
Wozu ist das von Microsoft erdacht?
Eine ganze Adresskartei willst du doch wohl nicht in der Registry ablegen oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 14:27
Microsoft Bashing ? Aber das ist ja auch was ganz anderes.

Aber egal. Gehen wir mal von den Fensterkoordinaten aus :

FormShow :

Delphi-Quellcode:
  try
    FensterIni := TIniFile.Create(FensterDateiName);
    Left := FensterIni.ReadInteger(Name,'Left',Left);
    Top := FensterIni.ReadInteger(Name,'Top',Top);
(*
    Width  := FensterIni.ReadInteger(Name,'Width',Width);
    Height := FensterIni.ReadInteger(Name,'Height',Height);
*)

  finally
    FensterIni.Free;
  end;
Jetzt fummelt da einer an den Forms rum und schiebt sie sinnlos durch die Gegend. Deshalb muß der letzte Zustand für den nächsten Programmstart wieder verfügbar sein. Also :

FormClose :

Delphi-Quellcode:
  try
    FensterIni := TIniFile.Create(FensterDateiName); //FensterDateiName));
    FensterIni.WriteInteger(Name,'Left',Left);
    FensterIni.WriteInteger(Name,'Top',Top);
(*
    FensterIni.WriteInteger(Name,'Width',Width);
    FensterIni.WriteInteger(Name,'Height',Height);
*)

  finally
    FensterIni.Free;
  end;
Es wäre ein leichtes, da jetzt noch Voreinstellungen von Checkbooxen usw. unterzubringen. Und das Wort "Name" ist nicht zu unterschätzen ! Das´ist der Form-Name aus dem Quelltext und man braucht somit auch nur eine INI. Speichert man nun diese INI auch noch im User-Verzeichnis, dann kann jeder angemeldete Benutzer sich seinen eigenen Desktop zusammenbauen. Und ein Servicetechniker, der eventuell vor Ort was machen muß, der kann bei total verkorksten Einstellungen durch einfaches kopieren zumindest schnell wieder den Ursprungszustand wiederherstellen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 15:05
Und genauso gut kann man das auch mit der Registry machen. Wenn man da in HKCU schreibt, muss man sich noch nicht mal darumkümmern, dass die Benutzer getrennt verwaltet werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#15

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 16:20
Zitat von himitsu:
Ihr wißt aber, daß Microsoft zum Speichern von Programmspezifischen Daten das SPeichern in der Registry empfiehlt?
INIs sind offiziell am Aussterben.
Nun, das war einmal. Nachdem Microsoft neben der "DLL-Hölle" auch die Auswirkungen der "Registryhölle" verstanden hat, wird mit .NET ja alles anders, insbesondere sollte die Registry nur noch verwendet werden, wenn es um Dinge geht, die mit Konfigurationsdateien nicht gelöst werden können. Bier sind mit .Net natürlich xml-Konfigurationsdateien gemeint, aber wer zukunftssicher sein will, und sich und seinen Usern unendliche Probleme ersparen will, verwendet auch unter Win32 die Registry nur wenn es unweigerlich notwendig ist.
Unter Win32 kann man sich da natürlich mit ini Dateien behelfen, wenn xml hier unbequemer erscheint.

Grüsse
Woki
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#16

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 17:41
Zitat von woki:
...wird mit .NET ja alles anders, insbesondere sollte die Registry nur noch verwendet werden, wenn es um Dinge geht, die mit Konfigurationsdateien nicht gelöst werden können...
Quelle (insbesondere von M$) Das hat mir zwar schon vorher der gesunde Menschenverstand gesagt, aber wie man sieht wird die Registry noch liebend gern verwendet. Mir liegen Informationen vor, daß die Richtung eindeutig in Richtung XML geht (als Ersatz für INIs). Allerdings war da nie die Rede von der Registry in diesem Zusammenhang.

Und das hier ist dann auch in einem etwas anderen Licht zu sehen :

Zitat:
Mickysoft ist nicht gerade berühmt dafür, sinnvolle Ratschläge zu geben.
Was ist denn davon zu halten, wenn die Registry tatsächlich nur für Ausnahmefälle genutzt werden soll ? Alle, die Mickysoft-konform programmiert haben, tja, die haben eben die A-Karte gezogen.
Gruß
Hansa
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#17

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 19:08
Zitat von Hansa:
Zitat von woki:
...wird mit .NET ja alles anders, insbesondere sollte die Registry nur noch verwendet werden, wenn es um Dinge geht, die mit Konfigurationsdateien nicht gelöst werden können...
Quelle (insbesondere von M$) Das hat mir zwar schon vorher der gesunde Menschenverstand gesagt, aber wie man sieht wird die Registry noch liebend gern verwendet. Mir liegen Informationen vor, daß die Richtung eindeutig in Richtung XML geht (als Ersatz für INIs). Allerdings war da nie die Rede von der Registry in diesem Zusammenhang.
Die Registry sollte ja schon die Ini's ersetzen. Jetzt geht es halt zurück zu Kofigurationsdateien. Alles andere unterläuft die MS-Strategie des XCopy-Deployments. Das ergibt sich eigentlichauch ohne weitere Quellenangabe, aber z.B.

Holger Schwichtenberg:
Programmierung mit der .Net Klassenbibliothek
Addison Wesley
s. 453:

Sie sollten also nur dann auf die Registry zugreifen, wenn sie sicher sind, dass dieser Zugriff auch wirklich nötig ist ...
Andernfalls benutzen sie die XML- Konfigurationsdateien ihere Applikation, in denen Sie relevante Werte ablegen können.


Zitat von Hansa:
Und das hier ist dann auch in einem etwas anderen Licht zu sehen :

Zitat:
Mickysoft ist nicht gerade berühmt dafür, sinnvolle Ratschläge zu geben.
Was ist denn davon zu halten, wenn die Registry tatsächlich nur für Ausnahmefälle genutzt werden soll ? Alle, die Mickysoft-konform programmiert haben, tja, die haben eben die A-Karte gezogen.
Na ja, das war halt die Meinung von MS vor einigen Jahren, und bezogen auf Win32. Mit .Net ändert sich hier halt einiges, und deshalb ist es dann meine Meinung, dass man auch unter Win32 jetzt mit der Registry nicht mehr mehr machen sollte, als man dann unter .Net damit tun wird, nämlich nur das was unbedingt nötig ist. Das veinfacht den Übergang. Außerdem, wennn denn einfach jetzt endlich klar ist, dass die Registry in dieser Form ein Fehler war....

Grüsse
Woki
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 19:44
Wirklich sehr schön. Sogar M$ ist endlich auf den Trichter gekommen mit der Schrott-Registry. Aber seeeehr spät. Wer sich an deren "Richtlinien" gehalten hat, der ist in Zukunft eben der Dumme. *duck* Wer D2005 hat, der soll mal nach XML suchen und sich nicht wundern, was er da in den Borland-Verzeichnissen findet. Der Weg scheint also wieder zurück zu Textdateien zu gehen. Mit jedem Text-Editor lassen die sich bearbeiten. Für mein Beispiel mit den Fensterkoordinaten macht es allerdings keinen Sinn, dafür XML einzusetzen. Da reichen INIs völlig aus. Falls das doch nicht reicht, dann würde ich auch auf XML umstellen, zumindest bevor in wichtigem Programm irgendwo das Wort "TRegistry" auftaucht.

Es fehlt allerdings noch eine Variante, um Einstellungen zu speichern : in einer Datenbank. Man kann auch mit der Datenbank (eventuell sogar leerer) gleich einen voreingestellten "Desktop" mitliefern. Wegen der leichten Editierbarkeit von INI/XML bevorzuge ich aber eher das.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 19:47
Das
Zitat:
<?xml version="1.0" encoding="ISO-8859-1"?>
<adressdb><XMLFile><MajorVersion>1</MajorVersion><MinorVersion>226</MinorVersion><Computer>HAL9000</Computer><User>Michael</User>
<ModifyDate>2005-10-29</ModifyDate><ModifyTime>07:05:18</ModifyTime><RecordCount>44</RecordCount><HighestID>44</HighestID></XMLFile>
<Kontakt><ID>1</ID><Name>Alt</Name><Vorname>Stephan</Vorname><Strasse>Ellerhofer Straße 11</Strasse><PLZ>34121</PLZ><Ort>Kassel</Ort>
<Land>Deutschland</Land><Telefon1>(0561)2860736</Telefon1><Telefon2>01603052660</Telefon2><Fax></Fax><EMail1>stephan.alt@gmx.net</EMail1>
<EMail2></EMail2><URL></URL><GebDat></GebDat><Firma></Firma><Position></Position><Bem></Bem><InBericht>0</InBericht></Kontakt><Kontakt>
<ID>2</ID><Name>Kollatz</Name><Vorname>Angie</Vorname><Strasse>Philosophenweg 49</Strasse><PLZ></PLZ><Ort>Kassel</Ort><Land></Land>
<Telefon1></Telefon1><Telefon2>0176 24524122</Telefon2><Fax></Fax><EMail1></EMail1><EMail2></EMail2><URL></URL><GebDat></GebDat><Firma>
</Firma><Position></Position><Bem></Bem><InBericht>0</InBericht>
(Die Zeilenumbrüche habe ich schon eingefügt, damit es nicht den Thread zerschießt.)
ist ein Ausschnitt aus einer XML datei die von einem programm angelegt wurde. Also unter einfach mit dem Editor bearbeiten verstehe ich as anderes.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 19:57
Könntest Du bitte noch ein paar Umbrüche einfügen, damit der Thread auf mit 1280 noch auf den Bildschirm paßt?

Ordentlich formatiert, dazu mit einem Editor, der Syntax-Highlighting beherrscht, lässt es sich schon deutlich besser lesen. Ist bei HTML genau das selbe, das kann man häßlich schreiben (oder von Wysiwyg-Editoren schreiben lassen), oder man strukturiert es ordentlich und kann es auch lesen. Auch bei Delphi-Quelltexten ist es das selbe
XML ist halt bei verschachtelten Datenformaten im Vorteil, das kann eine Ini nicht. Und so ein Format ist mir tausendmal lieber, als eine binäre Datei. Die eierlegende Wollmilchsau ist XML natürlich nicht, und für das Speichern von drei Häkchen im Programm würd ich schon lieber ne Ini oder die Registry vorziehen.

Daniel
Daniel Schuhmann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 14:53 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