AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte SJ Config Utils 1.0 RC 3
Thema durchsuchen
Ansicht
Themen-Optionen

SJ Config Utils 1.0 RC 3

Ein Thema von jaenicke · begonnen am 29. Mai 2009 · letzter Beitrag vom 21. Jun 2011
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.053 Beiträge
 
Delphi 12 Athens
 
#2

Re: SJ Config Utils 1.0 beta 1

  Alt 29. Mai 2009, 04:45
Teil 2: Implementierung im eigenen Programm

Wie ich bereits gesagt habe muss die eigene Einstellungsklasse von TAppConfigManager abgeleitet werden. Wenn bereits eine solche Klasse existiert, kann diese einfach entsprechend ergänzt werden. So habe ich es bei meinen Projekten auch gemacht.
Dann müssen ein paar Methoden überschrieben bzw. implementiert werden. Insgesamt sieht das dann so aus:
Delphi-Quellcode:
uses
  XMLIntf, IniFiles, Registry, SJConfigUtils, ...;

type
type
  TAppConfig = class(TAppConfigManager)
  protected
    procedure LoadFromStream(Data: TStream); override;
    procedure SaveToXml(Ini: IXMLDocument); override;
    procedure LoadFromINI(Ini: TCustomIniFile); override;
    procedure LoadFromRegistry(Reg: TRegistry; ParentPath: String); override;

    procedure SaveToStream(Data: TStream); override;
    procedure LoadFromXml(Ini: IXMLDocument); override;
    procedure SaveToINI(Ini: TCustomIniFile); override;
    procedure SaveToRegistry(Reg: TRegistry; ParentPath: String); override;

    procedure RunConfigWizard; override;
    procedure ApplyStandardSettings; override;
    procedure GetProgramInfo(var Author, ProductName, ProductVersion: string); override;
  end;

implementation

uses
  ConfigWizard;

{ TAppConfig }

// Allgemeine Aufgaben

procedure TAppConfig.RunConfigWizard;
begin
  frmConfigWizard := TfrmConfigWizard.Create(nil);
  frmConfigWizard.ShowModal(Self);
end;

procedure TAppConfig.ApplyStandardSettings;
begin
  fUserName := 'Standardname';
end;

procedure TAppConfig.GetProgramInfo(var Author, ProductName,
  ProductVersion: string);
begin
  Author := 'Sebastian Jänicke';
  ProductName := 'SJ Config Utils Demo';
  ProductVersion := '1.0';
end;

...
Bei RunConfigWizard muss ein eigener Einstellungswizard angezeigt werden, der den Benutzer auch nach dem Ort für die Einstellungen fragen sollte. Ihr könnt natürlich den der Demo übernehmen und anpassen.

Für das Auslesen und Speichern der Einstellungen gibt es ReadString, WriteString, und so weiter. Das sieht dann so aus:
Delphi-Quellcode:
procedure TAppConfig.LoadFromXml(Ini: IXMLDocument);
begin
  if AccessManager.InitReadLocation('Userinfo', sIniSectionOpenError) then
  begin
    fUserName := AccessManager.ReadString('Username', sIniValueNotFound);
  end;
end;

...
Dabei wird mit InitReadLocation ein Knoten einer XML-Datei, ein Schlüssel in der Registry oder eine Sektion einer INI geöffnet und dann darin die Werte gelesen.

Eine andere Möglichkeit ist, die übergebenen Objekte direkt zu verwenden um die XML-Datei usw. direkt auszulesen oder zu schreiben.

Welche Speicherarten verfügbar sind und welche Methoden dementsprechend implementiert werden müssen, wird in der Unit SJConfigUtils ganz oben per Compilerdirektive festgelegt.

Eine komplette Implementierung findet ihr in der mitgelieferten Demo.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
 


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:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz