www.pudn.com > telephonefordelphi.rar > UnitPhoneBook.pas


unit UnitPhoneBook; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  Grids, StdCtrls, Buttons; 
 
type 
  TFormPhoneBook = class(TForm) 
    ListBox1: TListBox; 
    Edit1: TEdit; 
    BitBtn1: TBitBtn; 
    BitBtn2: TBitBtn; 
    BitBtn3: TBitBtn; 
    BitBtn4: TBitBtn; 
    Edit2: TEdit; 
    Label1: TLabel; 
    Label2: TLabel; 
    BitBtn5: TBitBtn; 
    BitBtn6: TBitBtn; 
    procedure FormShow(Sender: TObject); 
    procedure ListBox1DblClick(Sender: TObject); 
    procedure BitBtn2Click(Sender: TObject); 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    procedure ListBox1Click(Sender: TObject); 
    procedure BitBtn3Click(Sender: TObject); 
    procedure BitBtn4Click(Sender: TObject); 
    procedure BitBtn1Click(Sender: TObject); 
    procedure BitBtn5Click(Sender: TObject); 
    procedure BitBtn6Click(Sender: TObject); 
  private 
    { Private declarations } 
    slist:TStringlist; 
  public 
    { Public declarations } 
  end; 
 
var 
  FormPhoneBook: TFormPhoneBook; 
 
implementation 
 
uses UnitMain; 
 
{$R *.DFM} 
 
procedure TFormPhoneBook.FormShow(Sender: TObject); 
var 
   s1,s2:string; 
begin 
   s1:=FormMain.WaveFileDir+'PhoneBook1.Dat'; 
   s2:=FormMain.WaveFileDir+'PhoneBook2.Dat'; 
   if not fileexists(s1) then 
   begin 
      listbox1.Clear; 
      listbox1.Items.SaveToFile(s1); 
      listbox1.Items.SaveToFile(s2); 
   end; 
   listbox1.Items.LoadFromFile(s1); 
   slist:=Tstringlist.Create; 
   slist.LoadFromFile(s2); 
   if listbox1.Items.count<>slist.Count then 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
   ListBox1Click(Sender); 
end; 
 
procedure TFormPhoneBook.ListBox1DblClick(Sender: TObject); 
begin 
   ListBox1Click(Sender); 
   close; 
end; 
 
procedure TFormPhoneBook.BitBtn2Click(Sender: TObject); 
var 
   i:integer; 
begin 
   i:=listbox1.ItemIndex; 
   if i=-1 then exit; 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   if messagedlg('真的删除吗?',mtconfirmation,[mbyes,mbno],0)=mrno then exit; 
   listbox1.items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.bak'); 
   listbox1.Items.Delete(i); 
   listbox1.items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.dat'); 
 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.bak'); 
   slist.Delete(i); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.dat'); 
end; 
 
procedure TFormPhoneBook.FormClose(Sender: TObject; 
  var Action: TCloseAction); 
begin 
   slist.free; 
end; 
 
procedure TFormPhoneBook.ListBox1Click(Sender: TObject); 
var 
   i:integer; 
begin 
   i:=listbox1.ItemIndex; 
   if i=-1 then 
   begin 
      edit1.text:=''; 
      edit2.text:=''; 
      exit; 
   end; 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   edit1.text:=listbox1.items[i]; 
   edit2.text:=slist.Strings[i]; 
end; 
 
procedure TFormPhoneBook.BitBtn3Click(Sender: TObject); 
var 
   i:integer; 
begin 
   i:=listbox1.ItemIndex; 
   if i=-1 then exit; 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.bak'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.bak'); 
 
   listbox1.items[i]:=trim(edit1.text); 
   slist.Strings[i]:=trim(edit2.text); 
 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.Dat'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.Dat'); 
end; 
 
procedure TFormPhoneBook.BitBtn4Click(Sender: TObject); 
begin 
close; 
end; 
 
procedure TFormPhoneBook.BitBtn1Click(Sender: TObject); 
begin 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   edit1.text:=trim(edit1.text); 
   if edit1.text='' then exit; 
   if listbox1.Items.IndexOf(edit1.text)<>-1 then 
   begin 
      MessageDlg('已经存在.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.bak'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.bak'); 
 
   listbox1.items.add(trim(edit1.text)); 
   edit1.text:=''; 
   slist.add(trim(edit2.text)); 
   edit2.text:=''; 
 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.Dat'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.Dat'); 
end; 
 
procedure TFormPhoneBook.BitBtn5Click(Sender: TObject); 
var 
   i:integer; 
   s:string; 
begin 
   i:=listbox1.ItemIndex; 
   if i<=0 then exit; 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.bak'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.bak'); 
 
   s:=listbox1.items[i-1]; 
   listbox1.items[i-1]:=listbox1.items[i]; 
   listbox1.items[i]:=s; 
   s:=slist.Strings[i-1]; 
   slist.Strings[i-1]:=slist.Strings[i]; 
   slist.Strings[i]:=s; 
 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.Dat'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.Dat'); 
   listbox1.ItemIndex:=listbox1.ItemIndex-1; 
end; 
 
procedure TFormPhoneBook.BitBtn6Click(Sender: TObject); 
var 
   i:integer; 
   s:string; 
begin 
   i:=listbox1.ItemIndex; 
   if (i=-1)or(i>=Listbox1.items.count-1) then exit; 
   if listbox1.Items.count<>slist.Count then 
   begin 
      MessageDlg('电话号码薄错误.', mtInformation, [mbOk], 0); 
      exit; 
   end; 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.bak'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.bak'); 
 
   s:=listbox1.items[i+1]; 
   listbox1.items[i+1]:=listbox1.items[i]; 
   listbox1.items[i]:=s; 
   s:=slist.Strings[i+1]; 
   slist.Strings[i+1]:=slist.Strings[i]; 
   slist.Strings[i]:=s; 
 
   listbox1.Items.SaveToFile(FormMain.WaveFileDir+'PhoneBook1.Dat'); 
   slist.SaveToFile(FormMain.WaveFileDir+'PhoneBook2.Dat'); 
   listbox1.ItemIndex:=listbox1.ItemIndex+1; 
end; 
 
end.