123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- unit registryuserpreferences;
- {
- $Id: registryuserpreferences.pas,v 1.1 2004/09/30 22:35:47 savage Exp $
-
- }
- {******************************************************************************}
- { }
- { JEDI-SDL : Pascal units for SDL - Simple DirectMedia Layer }
- { Wrapper class for Windows Register and INI Files }
- { }
- { The initial developer of this Pascal code was : }
- { Dominqiue Louis <[email protected]> }
- { }
- { Portions created by Dominqiue Louis are }
- { Copyright (C) 2000 - 2001 Dominqiue Louis. }
- { }
- { }
- { Contributor(s) }
- { -------------- }
- { }
- { }
- { Obtained through: }
- { Joint Endeavour of Delphi Innovators ( Project JEDI ) }
- { }
- { You may retrieve the latest version of this file at the Project }
- { JEDI home page, located at http://delphi-jedi.org }
- { }
- { The contents of this file are used with permission, subject to }
- { the Mozilla Public License Version 1.1 (the "License"); you may }
- { not use this file except in compliance with the License. You may }
- { obtain a copy of the License at }
- { http://www.mozilla.org/MPL/MPL-1.1.html }
- { }
- { Software distributed under the License is distributed on an }
- { "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
- { implied. See the License for the specific language governing }
- { rights and limitations under the License. }
- { }
- { Description }
- { ----------- }
- { }
- { }
- { }
- { }
- { }
- { }
- { }
- { Requires }
- { -------- }
- { The SDL Runtime libraris on Win32 : SDL.dll on Linux : libSDL.so }
- { They are available from... }
- { http://www.libsdl.org . }
- { }
- { Programming Notes }
- { ----------------- }
- { }
- { }
- { }
- { }
- { Revision History }
- { ---------------- }
- { September 23 2004 - DL : Initial Creation }
- {
- $Log: registryuserpreferences.pas,v $
- Revision 1.1 2004/09/30 22:35:47 savage
- Changes, enhancements and additions as required to get SoAoS working.
- }
- {******************************************************************************}
- interface
- uses
- {$IFDEF REG}
- Registry,
- {$ELSE}
- IniFiles,
- {$ENDIF}
- Classes,
- userpreferences;
- type
- TRegistryUserPreferences = class( TUserPreferences )
- private
- protected
- function GetSection( const Index : Integer ) : string; virtual; abstract;
- function GetIdentifier( const Index : Integer ) : string; virtual; abstract;
- function GetDefaultBoolean( const Index : Integer ) : Boolean; override;
- function GetBoolean( const Index : Integer ) : Boolean; override;
- procedure SetBoolean( const Index : Integer; const Value : Boolean ); override;
- function GetDefaultDateTime( const Index : Integer ) : TDateTime; override;
- function GetDateTime( const Index : Integer ) : TDateTime; override;
- procedure SetDateTime( const Index : Integer; const Value : TDateTime ); override;
- function GetDefaultInteger( const Index : Integer ) : Integer; override;
- function GetInteger( const Index : Integer ) : Integer; override;
- procedure SetInteger( const Index : Integer; const Value : Integer ); override;
- function GetDefaultFloat( const Index : Integer ) : single; override;
- function GetFloat( const Index : Integer ) : single; override;
- procedure SetFloat( const Index : Integer; const Value : single ); override;
- function GetDefaultString( const Index : Integer ) : string; override;
- function GetString( const Index : Integer ) : string; override;
- procedure SetString( const Index : Integer; const Value : string ); override;
- public
- Registry : {$IFDEF REG}TRegIniFile{$ELSE}TIniFile{$ENDIF};
- constructor Create( const FileName : string = '' ); reintroduce;
- destructor Destroy; override;
- procedure Update; override;
- end;
- implementation
- uses
- SysUtils;
- { TRegistryUserPreferences }
- constructor TRegistryUserPreferences.Create( const FileName : string );
- var
- defFileName : string;
- begin
- inherited Create;
- if FileName <> '' then
- defFileName := FileName
- else
- defFileName := ChangeFileExt( ParamStr( 0 ), '.ini' );
- Registry := {$IFDEF REG}TRegIniFile{$ELSE}TIniFile{$ENDIF}.Create( defFileName );
- end;
- destructor TRegistryUserPreferences.Destroy;
- begin
- Update;
- Registry.Free;
- Registry := nil;
- inherited;
- end;
- function TRegistryUserPreferences.GetBoolean( const Index : Integer ) : Boolean;
- begin
- Result := Registry.ReadBool( GetSection( Index ), GetIdentifier( Index ), GetDefaultBoolean( Index ) );
- end;
- function TRegistryUserPreferences.GetDateTime( const Index : Integer ): TDateTime;
- begin
- Result := Registry.ReadDateTime( GetSection( Index ){$IFNDEF REG}, GetIdentifier( Index ), GetDefaultDateTime( Index ){$ENDIF} );
- end;
- function TRegistryUserPreferences.GetDefaultBoolean( const Index : Integer ) : Boolean;
- begin
- result := false;
- end;
- function TRegistryUserPreferences.GetDefaultDateTime( const Index: Integer ) : TDateTime;
- begin
- result := Now;
- end;
- function TRegistryUserPreferences.GetDefaultFloat( const Index: Integer ) : single;
- begin
- result := 0.0;
- end;
- function TRegistryUserPreferences.GetDefaultInteger(const Index : Integer ) : Integer;
- begin
- result := 0;
- end;
- function TRegistryUserPreferences.GetDefaultString( const Index : Integer ) : string;
- begin
- result := '';
- end;
- function TRegistryUserPreferences.GetFloat( const Index : Integer ): single;
- begin
- Result := Registry.ReadFloat( GetSection( Index ){$IFNDEF REG}, GetIdentifier( Index ), GetDefaultFloat( Index ){$ENDIF} );
- end;
- function TRegistryUserPreferences.GetInteger( const Index : Integer ) : Integer;
- begin
- Result := Registry.ReadInteger( GetSection( Index ), GetIdentifier( Index ), GetDefaultInteger( Index ) );
- end;
- function TRegistryUserPreferences.GetString( const Index : Integer ): string;
- begin
- Result := Registry.ReadString( GetSection( Index ), GetIdentifier( Index ), GetDefaultString( Index ) );
- end;
- procedure TRegistryUserPreferences.SetBoolean( const Index : Integer; const Value : Boolean );
- begin
- Registry.WriteBool( GetSection( Index ), GetIdentifier( Index ), Value );
- inherited;
- end;
- procedure TRegistryUserPreferences.SetDateTime( const Index: Integer; const Value: TDateTime );
- begin
- Registry.WriteDateTime( GetSection( Index ){$IFNDEF REG}, GetIdentifier( Index ){$ENDIF}, Value );
- inherited;
- end;
- procedure TRegistryUserPreferences.SetFloat(const Index: Integer; const Value: single);
- begin
- Registry.WriteFloat( GetSection( Index ){$IFNDEF REG}, GetIdentifier( Index ){$ENDIF}, Value );
- inherited;
- end;
- procedure TRegistryUserPreferences.SetInteger( const Index, Value : Integer );
- begin
- Registry.WriteInteger( GetSection( Index ), GetIdentifier( Index ), Value );
- inherited;
- end;
- procedure TRegistryUserPreferences.SetString( const Index : Integer; const Value : string );
- begin
- Registry.WriteString( GetSection( Index ), GetIdentifier( Index ), Value );
- inherited;
- end;
- procedure TRegistryUserPreferences.Update;
- begin
- {$IFDEF REG}
- Registry.CloseKey;
- {$ELSE}
- Registry.UpdateFile;
- {$ENDIF}
- end;
- end.
|