Delphi - 自动加载.INI文件的上次使用

时间:2015-06-27 19:14:40

标签: delphi ini

我需要你的帮助。

我们说我有三个.INI文件: Default.ini Stack.ini Overflow.ini 。我只是将 Default.ini 存储为代码中的变量。当然,这个设置每次运行应用程序时都会自动加载文件 Default.ini 。当然,不可能将所有文件名都放在代码中。

所以我的问题是,当我重新运行应用程序时,我希望自动加载的.ini文件是最近最近使用的.ini文件。

怎么做?

感谢您的帮助,非常感谢您的帮助!

以下是我的代码中最重要的部分[基于MasterMan82's TIniFile code]。

......

uses
  Windows, Messages, SysUtils, Variants, Classes, 
  Graphics, Controls, Forms, IniFiles, Dialogs;

......

private
  FCurrentIniFilename: String;

......

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
   I, LinesCount: Integer;
   Read         : TIniFile;
begin
   FCurrentIniFilename := ExtractFilePath(Application.EXEName)+ 'Default.ini';
   Read := TINIFile.Create(FCurrentIniFilename);
  Try
   Proxy.Text   := Read.ReadString('SETTING','Proxy','');
   Port.Text    := Read.ReadString('SETTING','Port','');
   Route.Checked:= Read.ReadBool('SETTING','Route',False);
   // TO READ MEMO LINES
   LinesCount := Read.ReadInteger('MEMO', 'Lines Count', 0);
   for I := 0 to LinesCount-1 do
   Memo1.Lines.Insert(I, Read.ReadString('MEMO', 'Item'+IntToStr(I), ''));
  Finally
   Read.Free;
  end;
end;

procedure TForm1.SaveClick(Sender: TObject);
var
   I, LinesCount: Integer;
   ToSave       : TIniFile;
begin
   ToSave := TINIFile.Create(FCurrentIniFilename);
  Try
   ToSave.WriteString('SETTING','Proxy',Proxy.Text);
   ToSave.WriteString('SETTING','Port',Port.Text);
   ToSave.WriteBool('SETTING','Route',Route.Checked);
   // TO SAVE MEMO LINES
   LinesCount := Memo1.Lines.Count;
   ToSave.WriteInteger('MEMO', 'Lines Count', LinesCount);
   for I := 0 to LinesCount-1 do
   ToSave.WriteString('MEMO', 'Item'+IntToStr(I), Memo1.Lines[I]);
  Finally
   ToSave.Free;
 end;
end;

procedure TForm1.OpenClick(Sender: TObject);
var
   I, LinesCount: Integer;
   OpenFile     : TIniFile;
begin    
   if OpenDialog.Execute then begin
    FCurrentIniFilename := OpenDialog.Filename;
    Open := TINIFile.Create(FCurrentIniFileName);
  Try
   Proxy.Text   := OpenFile.ReadString('SETTING','Proxy','');
   Port.Text    := OpenFile.ReadString('SETTING','Port','');
   Route.Checked:= OpenFile.ReadBool('SETTING','Route',False);
   // TO READ MEMO LINES
   LinesCount   := OpenFile.ReadInteger('MEMO', 'Lines Count', 0);
   for I := 0 to LinesCount-1 do
   Memo1.Lines.Insert(I, OpenFile.ReadString('MEMO', 'Item'+IntToStr(I), ''));
  Finally
   OpenFile.Free;
  end;
 end;
end;

0 个答案:

没有答案