============================================================================== 【 名  称 】ExtIniFile コンポーネント 【バージョン】Version 1.6.0 【 対応OS 】Windows Vista/XP/2000 【 対応言語 】Borland Delphi 2009/2007/2006/2005 (Win32のみ) 【 著作権者 】みず 【 開発言語 】D2007版: CodeGear Delphi 2007 professional for Win32 D2009版: CodeGear Delphi 2009 Enterprise 【テスト環境】D2007版: Windows Vista Ultimate(SP1) + Delphi 2007 pro D2009版: Windows Vista Ultimate(SP1) + Delphi 2009 Ent 【 配布ファイル 】ExtIniFile010600.zip 【 種  別 】フリーソフト、Delphiコンポーネント 【 転載条件 】後述 ============================================================================== ------------------------------------------------------------------------------ 1.概要 ------------------------------------------------------------------------------ INIファイルと同じ書式のテキストファイルにアクセスするためのコンポーネントです。 THashedStringListを使用し、ファイルの内容をメモリにキャッシュしているため、高 速なアクセスが可能です。 ------------------------------------------------------------------------------ 2.ファイル構成 ------------------------------------------------------------------------------ アーカイブには以下のファイルとフォルダが含まれます。  (ルートフォルダ)    ExtIniFile.txt ドキュメント(このファイル)  (2007フォルダ) - Delphi2007までのバージョンにインストールします    ExtIniFile.dcr コンポーネントリソース    ExtIniFile.pas メインのユニットファイル(Delphi2007版)  (2009フォルダ) - Delphi2009以降のバージョンにインストールします    ExtIniFile.dcr コンポーネントリソース    ExtIniFile.pas メインのユニットファイル(Delphi2009版) ------------------------------------------------------------------------------ 3.インストール ------------------------------------------------------------------------------ アーカイブを解凍し、お使いのDelphiのバージョンにあったファイルを、Delphiのパス が通ったフォルダにコピー(または移動)します。 ExtIniFile.pasファイルを所定の方法でインストールします。 (バージョンアップする場合) インストール済みのファイルを、新しいバージョンのファイルで上書きします。その後、 ExtIniFileをインストールしたパッケージを開き、再構築を実行します。 ------------------------------------------------------------------------------ 4.アンインストール ------------------------------------------------------------------------------ パッケージからExtIniFileを削除します。その後、「ファイル構成」に示したファイル を削除します。 ------------------------------------------------------------------------------ 5.使用方法 ------------------------------------------------------------------------------ 非ビジュアルコンポーネントです。フォームに貼り付けて使用します。 DefaultFolderプロパティとFileNameプロパティを設定し、アクセス用のメソッドを使 用してデータの読み書きを行います。 ------------------------------------------------------------------------------ 6.TExtIniFileメンバ ------------------------------------------------------------------------------ ● property AbsoluteFileName: TFileName;  [public、読み取り専用]  INIファイル名をフルパス付きで取得します。 ● property AutoUpdate: Boolean;  [published]  コンポーネントが破棄されるとき、自動的にキャッシュをディスクに書き込むかどう  かを指定します。Trueの場合、コンポーネントが破棄される直前に、キャッシュをデ  ィスクに書き込みます。ただし、UpdateAtOnceプロパティがTrueの場合、書き込みを  行いません。  AutoUpdateプロパティがFalseの場合、自動的にキャッシュを書き込みません。キャ  ッシュを書き込むにはUpdateメソッドを実行する必要があります。  デフォルトはTrueです。 ● property CaseSensitive: Boolean;  [published]  INIファイルのセクション名、及びアイテム名で大文字と小文字を区別するかどうか  を示します。Trueの場合、大文字小文字が区別されます。不用意にCaseSensitiveプ  ロパティをTrueにすると、データを読み込めなくなります。  デフォルトはFalseです。 ○ procedure Clear;  メモリのキャッシュの内容を消去します。キャッシュを消去するだけで、空になった  キャッシュをファイルには書き込みません。ファイルを空にするには、Clearメソッ  ドの後にUpdateメソッドを実行します。 ○ procedure Copy(const Dest: string);  INIファイルをコピーします。コピー先のファイル名は引数Destで指定します。  Copyメソッドは単にファイルをコピーするだけですので、キャッシュが未保存の場合、  未保存のデータはコピーされません。 ● property DefaultFolder: TDefaultFolder;  [published]  INIファイルを作成するフォルダを指定します。DefaultFolderに指定できる値は次の  とおりです。   dfAppData : アプリケーション定義データ格納用のフォルダ   dfApplication : アプリケーションの実行ファイル(*.exe)と同じフォルダ(デフォ           ルト)   dfUser : ユーザが指定したフォルダ   dfWindows : Windowsフォルダ  デフォルトはdfApplicationで、アプリケーションの実行ファイルと同じフォルダに  INIファイルを作成します。  dfUserを指定した場合、FileNameプロパティはフルパスで指定する必要があります。  その他の場合、FileNameにはパスを除いたファイル名だけを指定します。  dfAppDataを指定すると、OSで決められた「アプリケーション定義データ」用のフォ  ルダに、アプリケーションの実行ファイル名でサブフォルダを作成し、そのサブフォ  ルダにINIファイルを作成します。  Windows VistaでdfAppData以外を指定した場合、アプリケーションに管理者権限が必  要になることがあります。ユーザー権限で書き込むと、別のフォルダにリダイレクト  されて書き込まれ、読み取り時に正常に読み込めなくなる可能性があります。 ○ procedure DeleteItem(const Section, Item: string);  引数で指定したセクション内のアイテムを削除します。Sectionは削除したいアイテ  ムがあるセクションを指定し、Itemには削除するアイテムを指定します。指定したア  イテムが存在しない場合、このメソッドは何もしません。 ● property Encoding: TIniEncoding;  [published、Delphi2009のみ]  INIファイルをデフォルトのコードページで書き込むか、Unicodeで書き込むかを指定  します。Delphi2009より前のバージョンと互換性を保には、ieDefaultを指定します。  Unicodeで書き込むにはieUnicode、またはieUTF8を指定します。  デフォルトのコードページで書き込んだINIファイルをUnicodeに変換するときは、  EncodingをieDefaultにしてReloadメソッドでファイルを読み取り、その後、  EncodingをieUnicode(ieUTF8)にしてUpdateメソッドで書き込みます。 ○ procedure Erase;  INIファイルを空にします。ただし、INIファイルの内容はメモリにキャッシュされて  いるため、Eraseメソッドはまずキャッシュを空にします。その後、UpdateAtOnceプ  ロパティをチェックし、このプロパティがTrueのときは空の内容をファイルに書き込  みます。  UpdateAtOnceプロパティがFalseの場合、EraseメソッドはClearメソッドと同じにな  ります。 ○ procedure EraseSection(const Section: string);  引数Sectionで指定したセクションを消去します。セクション内のアイテムもすべて  消去されます。指定したセクションが存在しない場合、EraseSectionメソッドは何も  しません。 ● property FileName: TFileName;  [published]  INIファイル名を指定します。DefaultFolderプロパティがdfUserの場合、ファイル名  をフルパスで指定します。DefaultFolderプロパティがdfApplication、dfWindows、  またはdfAppDataの場合、パスを除いたファイル名を指定します。  FileNameプロパティを指定しなかった場合、INIファイル名はアプリケーションの実  行ファイル名と同じになります。 ○ function ItemExists(const Section, Item: string): Boolean;  Sectionで指定したセクションに、Itemで指定したアイテムが存在するかどうかを調  べます。アイテムが存在する場合、このメソッドはTrueを返します。 ● property Items[Section: string]: TStrings;  [public、読み取り専用]  Sectionで指定したセクション内の、アイテムのリストを取得します。セクションが  存在しない、または空のセクションの場合、nilを返します。 ● property Modified: Boolean;  [public]  メモリ上のキャッシュの内容に変更があるかどうかを示します。ModifiedがTrueの場  合、キャッシュに変更があり、その変更をまだファイルに書き込んでいないことを表  します。Updateメソッドなどでファイルに書き込むと、ModifiedはFalseになります。  Modifiedプロパティは変更可能です。 ■ property OnLoad: TNotifyEvent;  ディスクからキャッシュへと、ファイル内容が読み込まれた直後に生成されます。た  だし、コンポーネント生成時に最初にファイルが読み込まれるときは、OnLoadイベン  トを生成しません。OnLoadイベントは次の場合に生成されます。   ・Reloadメソッドを実行したとき   ・DefaultFolderプロパティを変更したとき   ・FileNameプロパティを変更したとき ■ procedure OnUpdate: TNotifyEvent;  キャッシュの内容がディスクに書き込まれたときに生成されます。キャッシュが書き  込まれるのは以下の場合です。   ・Updateイベントを実行したとき   ・UpdateAtOnceプロパティがTrueのときに、Write〜メソッドを実行したとき   ・UpdateAtOnceプロパティがTrueのときに、DeleteItemメソッドを実行し、アイテ    ムを削除できた場合   ・UpdateAtOnceプロパティがTrueのときに、Eraseメソッドを実行した場合   ・UpdateAtOnceプロパティがTrueのときに、EraseSectionメソッドを実行し、指定    したセクションを削除できた場合   ・UpdateAtOnceプロパティにTrueを設定したとき ○ function ReadBool(const Section, Item: string; const Default: Boolean): Boolean;  論理型のデータを読み取ります。指定したセクション、またはアイテムが存在しない  場合、引数Defaultが戻り値になります。 ● procedure ReadBounds(const Section, Item: string;        AControl: TControl);  TControlから派生したコントロールの位置とサイズを読み取ります。読み取った位置  とサイズはAControlのコントロールに適用されます。コントロールの位置とサイズを  INIファイルに書き込むには、WriteBoundsメソッドを使用します。 ○ function ReadCardinal(const Section, Item: string;        const Default: Cardinal): Cardinal;  Sectionで指定したセクションのItemで指定したアイテムから、Cardinal型の整数値  を読み取ります。セクション、またはアイテムが存在しない場合、引数Defaultの値  が戻り値になります。 ○ function ReadColor(const Section, Item: string; const Default: TColor): TColor;  指定したセクションのアイテムから、TColor型の色値を取得します。アイテムが存在  しない場合、引数Defaultの値が戻り値になります。 ○ function ReadCurr(const Section, Item: string; const Default: Currency): Currency;  指定したセクション内の指定したアイテムから、Currency型の数値を読み取ります。  セクション、またはアイテムが存在しない場合、引数Defaultの値が戻り値になりま  す。 ○ function ReadDate(const Section, Item: string;        const Default: TDate): TDate;  Sectionで指定したセクションの、Itemで指定したアイテムから、TDate型の日付値   を読み取ります。セクション、またはアイテムが存在しない場合、引数Defaultの値  が戻り値になります。 ○ function ReadDateTime(const Section, Item: string; const Default: TDateTime): TDateTime;  Sectionで指定したセクションの、Itemで指定したアイテムから、TDateTime型の日付  時刻値を読み取ります。セクション、またはアイテムが存在しない場合、引数  Defaultの値が戻り値になります。 ○ function ReadDirectory(const Section, Item, Default: string): string;  指定したセクションのアイテムから、フォルダのパスを読み取ります。  ReadDirectoryメソッドは、読み取った文字列の末尾に自動的にパス区切り(\)を付け  ます。ただし、読み取った文字列が空文字列の場合は、パス区切りをつけません。  指定したセクション、またはアイテムが存在しない場合、Defaultの値が戻り値にな  ります。 ○ function ReadFloat(const Section, Item: string; const Default: Extended): Extended;  Sectionで指定したセクションの、Itemで指定したアイテムから、実数型の数値を読  み取ります。セクション、またはアイテムが存在しない場合、引数Defaultの値が戻  り値になります。 ○ procedure ReadFont(const Section, Item: string; Font: TFont);  Sectionで指定したセクションの、Itemで指定したアイテムからTFontのプロパティを  読み取り、Fontに適用します。セクション、またはアイテムが存在しない場合、  Fontのプロパティは変化しません。フォントのプロパティを書き込むには、  WriteFontメソッドを使用します。 ○ procedure ReadForm(const Section, Item: string;        Form: TCustomForm);  WriteFormメソッドで書き込んだフォームの位置とサイズを読み取り、引数Formのフ  ォームに適用します。指定したセクション、またはアイテムが存在しない場合、  Formの位置とサイズは変化しません。 ○ procedure ReadForm2(const Section: string; Form: TCustomForm);  WriteForm2メソッドで書き込んだフォームの位置とサイズを読み取り、Formに適用し  ます。ReadForm2メソッドは、ReadFormメソッドで以下のように指定したことと同じ  です。   ReadForm(Section, Form.Name, Form); ○ procedure ReadFormEx(const Section, Item: string;        Form: TCustomForm);  WriteFormメソッドで書き込んだフォームの位置とサイズを読み取り、引数Formのフ  ォームに適用します。ReadFormメソッドと違い、ReadFormExメソッドはフォームのク  ライアントサイズを読み取って適用します。 ○ procedure ReadFormEx2(const Section: string; Form: TCustomForm);  WriteForm2メソッドで書き込んだフォームの位置とクライアントサイズを読み取り、  Formに適用します。ReadFormEx2メソッドは、ReadFormExメソッドで以下のように指  定したことと同じです。   ReadFormEx(Section, Form.Name, Form); ○ function ReadInt(const Section, Item: string; Default: Integer): Integer;  Sectionで指定したセクションの、Itemで指定したアイテムから整数値を読み取りま  す。セクション、またはアイテムが存在しない場合、代わりに引数Defaultの値が戻  り値になります。 ○ function ReadInt64(const Section, Item: string; Default: Int64): Int64;  Sectionで指定したセクションの、Itemで指定したアイテムからInt64型の整数値を読  み取ります。セクション、またはアイテムが存在しない場合、引数Defaultの値が戻  り値になります。 ○ procedure ReadList(const Section, Item: string; List: TStrings);  WriteListメソッドで書き込んだ、TStrings型の文字列リストを読み取ります。メソ  ッドを実行すると、Listを一旦クリアし、指定したセクション内のアイテムから文字  列リストを読み取って、引数Listに追加します。  セクション、またはアイテムが存在しない場合、Listは空になりますので注意が必要  です。 ○ procedure ReadPos(const Section, Item: string; AControl: TControl);  WriteBoundsメソッドで書き込んだコントロールの位置を読み取り、引数AControlの  コントロールに適用します。セクション、またはアイテムが存在しない場合、コント  ロールの位置は変化しません。 ○ procedure ReadSection(const Section: string; List: TStrings);  Sectionで指定したセクションから「<アイテム>=<データ>」という形式のアイテム一  覧を取得し、引数Listに格納します。指定したセクションが存在しない場合、   Listは空になります。 ○ procedure ReadSectionName(List: TStrings);  セクション名の一覧を取得し、引数Listに格納します。 ○ procedure ReadSize(const Section, Item: string;        AControl: TControl);  WriteBoundsメソッドで書き込んだコントロールのサイズを取得し、AControlで指定  したコントロールに適用します。セクション、またはアイテムが存在しない場合、  AControlのサイズは変更されません。 ○ function ReadStr(const Section, Item, Default: string): string;  Sectionで指定したセクションの、Itemで指定したアイテムから文字列を読み取りま  す。セクション、またはアイテムが存在しない場合、引数Defaultの値が戻り値にな  ります。 ○ (Delphi2007版)   function ReadStrEx(const Section, Item, Default, Password: string): string;  WriteStrExメソッドによって暗号化された文字列を読み取ります。読み取り時に引数  Passwordで指定したパスワードを使用して、文字列の暗号を解除します。パスワード  について、その適性は検査しません。したがって、書き込み時と異なるパスワードを  指定した場合、無意味な文字列が読み込まれます。  指定したセクションやアイテムが存在しない場合、引数Defaultで指定した値がその  まま戻り値となります。Defaultには暗号化されていない文字列を指定します。 ○ (Delphi2009版) [構文1] function ReadStrEx(const Section, Item: string; const Default, Password: RawByteString): RawByteString; overload; [構文2] function ReadStrEx(const Section, Item, Default, Password: string): string; overload;  WriteStrExメソッドによって暗号化された文字列を読み取ります。読み取り時に  Password引数で指定したパスワードを使用して、文字列を復号化します。パスワード  が適性かどうかは検査しません。書き込み時と異なるパスワードを指定した場合、無  意味な文字列が読み込まれます。  指定したセクションやアイテムが存在しない場合、Default引数で指定した値がその  まま戻ります。Default引数には暗号化されていない文字列を指定します。  [構文1]は、Delphi2007版との互換性を保つために用意されています。Delphi2007版、  またはver.1.5.1以下のバージョンで暗号化した文字列は、AnsiStringで書き込まれ  ています。そのため、UnicodeStringを使用した[構文2]では正しく読み込めません。  [構文2]は、Unicodeで処理します。Unicode版のWriteStrExメソッドで書き込んだ文  字列は、[構文2]を使用する必要があります。 ○ function ReadTime(const Section, Item: string;        const Default: TTime): TTime;  Sectionで指定したセクションの、Itemで指定したアイテムからTTime型の時刻値を読  み取ります。セクション、またはアイテムが存在しない場合、引数Defaultの値がそ  のまま戻り値になります。 ○ procedure ReadWinPos(const Section, Item: string; Form: TForm);  WriteFormメソッドで書き込んだフォームの位置とサイズから、位置だけを読み取っ  て引数Formに適用します。セクション、またはアイテムが存在しない場合、Formの位  置は変化しません。 ○ procedure ReadWinSize(const Section, Item: string; Form: TForm);  WriteFormメソッドで書き込んだフォームの位置とサイズから、サイズだけを読み取  って引数Formに適用します。セクション、またはアイテムが存在しない場合、   Formのサイズは変化しません。 ○ procedure ReadWinSizeEx(const Section, Item: string; Form: TForm);  WriteFormメソッドで書き込んだフォームの位置とサイズから、サイズだけを読み取  って引数Formに適用します。ただし、ReadWinSizeExメソッではフォームのクライア  ントサイズを読み取って適用します。 ○ procedure Reload;  現在のキャッシュの内容を破棄し、ファイルからキャッシュへと再読込します。  Reloadメソッドを実行すると、OnLoadイベントが発生します。 ○ procedure Rename(const NewFolder: TDefaultFolder;        const NewName: string): Boolean;  INIファイルの名前を変更します。NewFolderには名前の変更後のファイルを保存する  フォルダを指定します。また、NewNameには新しいINIファイル名を指定します。  NewFolderにdfUserを指定した場合、NewNameはフルパス付きのファイル名を指定しま  す。NewFolderがそれ以外の場合、NewNameにはパスの付かないファイル名だけを指定  します。  名前の変更に成功すると、RenameメソッドはTrueを返します。このとき、  DefaultFolderプロパティと、FileNameプロパティは、自動的に変更後のファイルを  指すようになります。名前の変更に失敗した場合Falseを返し、DefaultFolderプロパ  ティとFileNameプロパティが変更されることはありません。 ○ function RenameSection(const Section, NewSection: string): Boolean;  Sectionで指定したのセクション名を、NewSectionのセクション名に変更します。  Sectionに存在しないセクション名を指定するか、NewSectionにすでに存在するセク  ション名を指定した場合、関数は失敗し、Falseを返します。 ● property SectionCount: Integer;  [public、読み取り専用]  INIファイルの現在のセクション数を返します。 ○ function SectionExists(const Section: string): Boolean;  Sectionに指定したセクションが存在するかどうかを検査します。指定したセクショ  ンが存在する場合、Trueを返します。 ● property Sections[Index: Integer]: string;  [public、読み取り専用]  Indexで指定した位置のセクション名を取得します。セクションが全く存在しない場  合や、存在しない位置を指定しても例外は発生せず、空の文字列を返します。  なお、INIファイルに新しいセクションを追加したとき、Indexの末尾に追加されると  は限りません。セクションは効率よくアクセスできる順序で並びます。 ○ procedure Update;  キャッシュの内容をファイルに書き込みます。UpdateAtOnceメソッドがTrueの場合、  キャッシュに書き込みを行うたび、自動的にUpdateメソッドが実行されますので、明  示的にUpdateを実行する必要はありません。また、AutoUpdateプロパティがTrueの場  合、ExtIniFileが解放される直前にも、自動的にUpdateを実行します。  大量のオプションを変更した直後など、確実にファイルへ書き込んでおきたいときに  Updateメソッドを実行してください。Updateメソッドを実行するとOnUpdateイベント  が発生します。 ● property UpdateAtOnce: Boolean;  [published]  UpdateAtOnceプロパティをTrueにすると、メモリに書き込まれデータが直ちにディス  クへ書き込まれるようになります。確実にディスクへデータを書き込みたいときは  UpdateAtOnceプロパティをTrueに設定してください。ただし、頻繁にデータを書き込  むときはアクセス速度が遅くなってしまいます。  UpdateAtOnceプロパティのデフォルトはFalseです。 ○ procedure WriteBool(const Section, Item: string; const Value: Boolean);  論理型(Boolean)のデータを、Sectionで指定したセクション内の、Itemで指定したア  イテムに書き込みます。書き込むデータは引数Valueで指定します。 ○ procedure WriteBounds(const Section, Item: string; AControl: TControl);  TControlから派生したコントロールの位置とサイズを書き込みます。AControlに位置  とサイズを書き込むコントロールを指定します。書き込んだ位置とサイズを読み取る  には、ReadBounds、ReadPos、ReadSizeメソッドを使用します。 ○ procedure WriteCardinal(const Section, Item: string;   const Value: Cardinal);  Cardinal型の整数値を書き込みます。書き込む数値は引数Valueで指定します。 ○ procedure WriteColor(const Section, Item: string; const Value: TColor);  引数Valueに指定したTColor型の色値を書き込みます。WriteColorメソッドで書き込  んだ色値は通常ReadColorメソッドで読み取りますが、ReadIntメソッドでも読み取る  ことができます。 ○ procedure WriteCurr(const Section, Item: string; const Value: Currency);  Valueに指定したCurrency型の数値を書き込みます。 ○ procedure WriteDate(const Section, Item: string; const Value: TDate);  TDate型の日付を書き込みます。書き込む日付データは引数Valueで指定します。 ○ procedure WriteDateTime(const Section, Item: string; const Value: TDateTime);  TDateTime型の日付/時刻を書き込みます。 ○ procedure WriteDirectory(const Section, Item, Path: string);  Path引数の文字列を書き込みます。このとき、Pathの末尾がパス区切り(\)かどうか  調べ、パス区切りでなければこれを末尾に付けたあと書き込みます。ただし、Pathが  空文字列の場合はパス区切りをつけません。 ○ procedure WriteFloat(const Section, Item: string; const Value: Extended);  実数型の数値を書き込みます。 ○ procedure WriteFont(const Section, Item: string; Font: TFont);  引数Fontに指定したフォントのプロパティを書き込みます。書き込んだフォントを読  み取るには、ReadFontメソッドを使用します。 ○ procedure WriteForm(const Section, Item: string; Form: TCustomForm);  引数Formに指定したフォームの位置とサイズを書き込みます。フォームのOnCloseイ  ベントでWriteFormメソッドによって位置とサイズを書き込み、フォームのOnCreate  イベントでReadFormメソッドを使用すれば、アプリケーション終了時のフォームの位  置とサイズを、起動のたびに復元できるようになります。  書き込んだ位置とサイズを読み取るにはReadFormメソッド以外に、ReadFormEx、  ReadWinPos、ReadWinSize、及びReadWinSizeExメソッドを使用できます。 ○ procedure WriteForm(const Section: string; Form: TCustomForm);  Formの位置とサイズを書き込みます。このとき、アイテム名がフォームの名前と一致  します。つまり、次のようにWriteFormメソッドを実行したときと同じことになりま  す。   WriteForm(Section, Form.Name, Form); ○ procedure WriteInt(const Section, Item: string; const Value: Integer);  整数型の数値を書き込みます。Integer型で扱えない大きな数値を書き込むには、  WriteCardinalメソッドやWriteInt64メソッドを使用します。 ○ procedure WriteInt64(const Section, Item: string; const Value: Int64);  Int64型の整数値を書き込みます。 ○ procedure WriteList(const Section, Item: string; List: TStrings);  TStrings型の文字列リストを書き込みます。 ○ procedure WriteStr(const Section, Item, Value: string);  文字列を書き込みます。 ○ (Delphi2007版) procedure WriteStrEx(const Section, Item, Value, Password: string);  Valueで指定した文字列を、暗号化して書き込みます。引数Passwordは、暗号化した  文字列を復元するためのパスワードを指定します。文字列の読み取りにはReadStrEx  メソッドを使用し、書き込み時と同じパスワードを指定する必要があります。  パスワードを忘れてしまった場合、その文字列を復元できなくなりますので十分注意  してください。 ○ (Delphi2009版) [構文1] procedure WriteStrEx(const Section, Item: string; const Value, Password: RawByteString); overload; [構文2] procedure WriteStrEx(const Section, Item, Value, Password: string); overload;  Value引数で指定した文字列を暗号化して書き込みます。Password引数には暗号化の  ためのパスワードを指定します。文字列の読み取りにはReadStrExメソッドを使用し、  書き込み時と同じパスワードを指定する必要があります。  [構文1]はDelphi2007版と互換性を保つために使用します。Delphi2007、およびそれ  以前ではAnsiStringで文字列を書き込みます。  [構文2]では、Unicodeを使用します。通常はこちらを使用してください。 ○ procedure WriteTime(const Section, Item: string; const Value: TTime);  TTime型の時刻値を書き込みます。 ------------------------------------------------------------------------------ 7.サポート ------------------------------------------------------------------------------ ソフトウェアの感想、意見、バグ報告などはホームページへお願いします。   flow of water  http://wblue.web.infoseek.co.jp/ ------------------------------------------------------------------------------ 8.利用規約 ------------------------------------------------------------------------------ (免責事項)   このプログラムを使用したいかなる結果に対し、作者は免責とします。プログラム   を使用することによって発生するリスクはすべて利用者の責任であり、作者は一切   の責任を負いません。 (使用条件)   このプログラムはDelphiのアプリケーションに組み込んで使用するコンポーネント   です。アプリケーションの形態(フリー、商用)に関わりなく組み込んで使用できま   す。ただし、使用に際してこの利用規約に同意する必要があります。アプリケーシ   ョンに組み込んで使用した場合、この規約に同意したものとみなします。 (配布条件)   A.アプリケーションの配布     本コンポーネントを組み込んだアプリケーションの配布は、一切制限しません。     また、配布に関してロイヤリティを求めることも一切ありません。   B.コンポーネントの再配布     B1.本コンポーネントの再配布       オリジナルに一切の改変を加えない状態であれば、事前の許可なく再配布       することを認めます。ここでいう改変とは、ソースプログラムの修正、       アーカイブ形式の変更、独自ファイルの追加なども含めます。     B2.派生したカスタムコンポーネントの配布       本コンポーネントから派生したカスタムコンポーネントは、本コンポーネ       ントのソースを含まない形であれば自由に配布できます。     B3.本コンポーネントを修正(改造)したコンポーネントの配布       本コンポーネントを修正(改造)したコンポーネントは、以下のいずれか       の方法でソースを含まないようにすれば自由に配布できます。         ・アプリケーションに組み込み、アプリケーションを配布する         ・コンパイル済みパッケージとして配布する ------------------------------------------------------------------------------ 9.変更履歴 ------------------------------------------------------------------------------ ● 1.1-1.2  - 省略 ● 1.3  - ReadWinPosメソッドを使用すると、フォームが無反応になることのある不具合を修   正。 ● 1.4  - フォーム関連メソッドの引数の型を、TFromからTCustomFormに変更。  - WriteForm2、ReadForm2、ReadFormEx2メソッドの追加。 ● 1.5.0  - Modifiedプロパティの追加。  - ReadDirectoryメソッドの追加。  - WriteDirectoryメソッドの追加。 ● 1.5.1  - DefaultFolderプロパティ、およびFileNameプロパティを変更したとき、例外を生   成する可能性がある不具合を修正。 ● 1.6.0  - Delphi2009に対応。  - アーカイブの形式をZIPに変更。