ini写配置信息

//列表框
//文本框
//编辑框
//组合框
//单选框
//检查框
 
unit Unit1; 

interface 

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

type 
  TForm1 = class(TForm) 
    ListBox1: TListBox; 
    Button1: TButton; 
    Button2: TButton; 
    Memo1: TMemo; 
    Button3: TButton; 
    Button4: TButton; 
    ComboBox1: TComboBox; 
    Edit1: TEdit; 
    CheckBox1: TCheckBox; 
    CheckBox2: TCheckBox; 
    RadioGroup1: TRadioGroup; 
    ComboBox2: TComboBox; 
    Button5: TButton; 
    Button6: TButton; 
    Button7: TButton; 
    procedure Button3Click(Sender: TObject); 
    procedure Button4Click(Sender: TObject); 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    procedure Button5Click(Sender: TObject); 
    procedure Button6Click(Sender: TObject); 
    procedure ComboBox1Change(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end

var 
  Form1: TForm1; 

implementation 
 uses IniFiles; 
{$R *.dfm} 

var iniPath:string;//ini路径 
    fName:string;  //ini的文件名 
procedure ListBoxToINI(const AINIFile, ASection: string; ListBox: TListBox); 
var 
  INI: TINIFile; 
  I: Integer; 
begin 
  INI := TINIFile.Create(AINIFile); 
  try 
    INI.EraseSection(ASection); 
    INI.WriteInteger(ASection, 'Count', ListBox.Items.Count); 
    for I := 0 to ListBox.Items.Count - 1 do 
    begin 
      INI.WriteString(ASection, 'Item' + IntToStr(I), ListBox.Items[I]); 
    end
  finally 
    INI.Free; 
  end
end

procedure INIToListBox(const AINIFile, ASection: string; ListBox: TListBox); 
var 
  INI: TINIFile; 
  I, Count: Integer; 
begin 
  INI := TINIFile.Create(AINIFile); 
  try 
    Count := INI.ReadInteger(ASection, 'Count', 0); 
    for I := 0 to Count - 1 do 
    begin 
      ListBox.Items.Add(INI.ReadString(ASection, 'Item' + IntToStr(I), '0')); 
    end
  finally 
    INI.Free; 
  end
end

procedure MemoToINI(const AINIFile, ASection: string; Memo: TMemo); 
var 
  INI: TINIFile; 
  I: Integer; 
begin 
  INI := TINIFile.Create(AINIFile); 
  try 
    INI.EraseSection(ASection); 
    INI.WriteInteger(ASection, 'Count', Memo.Lines.Count); 
    for I := 0 to Memo.Lines.Count - 1 do 
    begin 
      INI.WriteString(ASection, 'Item' + IntToStr(I), Memo.Lines[I]); 
    end
  finally 
    INI.Free; 
  end
end

procedure INIToMemo(const AINIFile, ASection: string; Memo: TMemo); 
var 
  INI: TINIFile; 
  I, Count: Integer; 
begin 
  INI := TINIFile.Create(AINIFile); 
  try 
    Count := INI.ReadInteger(ASection, 'Count', 0); 
    for I := 0 to Count - 1 do 
    begin 
      Memo.Lines.Add(INI.ReadString(ASection, 'Item' + IntToStr(I), '0')); 
    end
  finally 
    INI.Free; 
  end
end

{write ini} 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  fName:=ComboBox1.Text; //// 
  iniPath:=GetCurrentDir()+format('\%s.ini',[fName]); 
  ListBoxToINI(iniPath,'列表框1',ListBox1); 
end

{read ini} 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
  fName:=ComboBox1.Text; //// 
  iniPath:=GetCurrentDir()+format('\%s.ini',[fName]); 
  ListBox1.Clear;//// 
  INIToListBox(iniPath,'列表框1',ListBox1); 
  memo1.Text:=iniPath; 
end

procedure TForm1.Button3Click(Sender: TObject); 
begin 
 ListBox1.Items:=memo1.Lines; 
end

procedure TForm1.Button4Click(Sender: TObject); 
begin 
  listbox1.Clear; 
end




procedure TForm1.FormCreate(Sender: TObject); 
begin 
   Button6.Click; 
end

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
  ///角色名<>空 
   Button5.Click; 
end

procedure TForm1.Button5Click(Sender: TObject); 
var MyIniFile: TIniFile; 
begin 
  ////////////////////INI////////////////////////// 
    fName:=ComboBox1.Text; //// 
    iniPath:=GetCurrentDir()+format('\%s.ini',[fName]); 
    MyIniFile := TIniFile.Create (iniPath); 
    try 
      //////////////////////////////////////////// 
      MyIniFile.WriteInteger ('Settings', 'Top', form1.Top); 
      MyIniFile.WriteInteger ('Settings', 'Left', form1.Left); 
      //////////////////////////////////////////// 
      MyIniFile.WriteString('Settings', 'Edit1', Edit1.text); 
      MyIniFile.WriteString('Settings', 'ComboBox2', ComboBox2.text); 
      MyIniFile.WriteBool('Settings', 'CheckBox1', CheckBox1.Checked); 
      MyIniFile.WriteBool('Settings', 'CheckBox2', CheckBox2.Checked); 
      MyIniFile.WriteInteger('Settings', 'RadioGroup1', RadioGroup1.ItemIndex); 
     /////////////ThisIsListBox//////////////////////// 
       ListBoxToINI(iniPath,'列表框1',ListBox1); 

       MemoToINI(iniPath,'文本框',Memo1); 
     /////////////ThisIsListBox//////////////////////// 
    Finally 
      MyIniFile.Free; 
    end
  ////////////////////INI////////////////////////// 
end

procedure TForm1.Button6Click(Sender: TObject); 
var  MyIniFile: TIniFile; 
begin 
  ////////////////////INI////////////////////////// 
    fName:=ComboBox1.Text; //// 
    iniPath:=GetCurrentDir()+format('\%s.ini',[fName]); 
    MyIniFile := TIniFile.Create(iniPath); 
    try 
      //////////////////////////////////////////// 
      form1.Top := MyIniFile.ReadInteger('Settings','Top',form1.Top); 
      form1.Left:= MyIniFile.ReadInteger('Settings','Left',form1.Left); 
      //////////////////////////////////////////// 
      Edit1.text:=MyIniFile.ReadString('Settings', 'Edit1', Edit1.text); 
      ComboBox2.text:=MyIniFile.ReadString('Settings', 'ComboBox2', ComboBox2.text); 
      CheckBox1.Checked:=MyIniFile.ReadBool('Settings', 'CheckBox1', CheckBox1.Checked); 
      CheckBox2.Checked:=MyIniFile.ReadBool('Settings', 'CheckBox2', CheckBox2.Checked); 
      RadioGroup1.ItemIndex:=MyIniFile.ReadInteger('Settings', 'RadioGroup1', RadioGroup1.ItemIndex); 
      /////ThisIsListBox////////////////////////////////// 
       ListBox1.Clear;//// 
       INIToListBox(iniPath,'列表框1',ListBox1); 
       Memo1.Clear; 
       INIToMemo(iniPath,'文本框',Memo1); 
      /////ThisIsListBox////////////////////////////////// 
    Finally 
      MyIniFile.Free; 
    end
  ////////////////////INI////////////////////////// 
   
end

procedure TForm1.ComboBox1Change(Sender: TObject); 
begin 
  //角色名改变后才读取 
  //角色名<>空 
  //角色的Hpmin<>0 
  if ComboBox1.Text<>'' then Button6.Click; 
end

end.
 
 
 
 
 





附件列表

 

posted @ 2012-06-09 13:51  XE2011  阅读(206)  评论(0编辑  收藏  举报