www.pudn.com > QQ_FACE.rar > untSetup.pas


unit untSetup; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls, dximctrl, Registry, IniFiles; 
 
type 
  TFrmSetup = class(TForm) 
    PageControl1: TPageControl; 
    TabSystem: TTabSheet; 
    TabSelf: TTabSheet; 
    BtnOK: TBitBtn; 
    BtnCancle: TBitBtn; 
    GroupBox1: TGroupBox; 
    GroupBox2: TGroupBox; 
    Panel1: TPanel; 
    Label1: TLabel; 
    ImgFaceList: TdxImageListBox; 
    Panel2: TPanel; 
    ImgFace: TImage; 
    Label2: TLabel; 
    EdtUserName: TLabeledEdit; 
    EdtOldPwd: TLabeledEdit; 
    EdtNewPwd1: TLabeledEdit; 
    EdtNewPwd2: TLabeledEdit; 
    ChbRunWithSystem: TCheckBox; 
    ChbAutoShowMsg: TCheckBox; 
    CheckBox3: TCheckBox; 
    ChbAskClose: TCheckBox; 
    HotKey1: THotKey; 
    Label3: TLabel; 
    ChbOnlineInfo: TCheckBox; 
    TabMsg: TTabSheet; 
    GroupBox3: TGroupBox; 
    CmbLeaveMsg: TdxImageComboBox; 
    Label4: TLabel; 
    MemMsg: TMemo; 
    Label5: TLabel; 
    Button1: TButton; 
    procedure FormCreate(Sender: TObject); 
    procedure BtnCancleClick(Sender: TObject); 
    procedure ImgFaceListClick(Sender: TObject); 
    procedure EdtUserNameKeyPress(Sender: TObject; var Key: Char); 
    procedure EdtUserNameKeyDown(Sender: TObject; var Key: Word; 
      Shift: TShiftState); 
    procedure BtnOKClick(Sender: TObject); 
    procedure CmbLeaveMsgChange(Sender: TObject); 
    procedure Button1Click(Sender: TObject); 
    procedure MemMsgKeyPress(Sender: TObject; var Key: Char); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  FrmSetup: TFrmSetup; 
 
implementation 
 
uses dm_share, Var_Share, main; 
 
var 
   LeaveMsg1,LeaveMsg2,LeaveMsg3,LeaveMsg4:string; 
 
{$R *.dfm} 
 
procedure TFrmSetup.FormCreate(Sender: TObject); 
var 
   i:integer; 
   MyBmp:TBitMap; 
   Reg:TRegistry; 
   MyIni:TIniFile; 
begin 
   Caption:='设置'; 
{-----------个人信息-----------} 
   ImgFaceList.ImageList:=DMShare.ImgLarge; 
   for i := 0 to 84 do 
   begin 
      ImgFaceList.AddItem('',i); 
   end; 
 
   MyBmp:=TBitMap.Create; 
   ImgFaceList.ImageList.GetBitmap(iFaceID,MyBmp); 
   ImgFace.Picture.Bitmap:=MyBmp; 
 
   ImgFaceList.ItemIndex:=iFaceId; 
   EdtUserName.Text:=sUserName; 
 
{-----------系统信息----------} 
   ChbAutoShowMsg.Checked:=bAutoshowMsg; 
   ChbOnlineInfo.Checked:=bOnlineInfo; 
   ChbAskClose.Checked:=bAskClose; 
 
   Reg:=TRegistry.Create; 
   try 
      Reg.RootKey:=HKEY_CURRENT_USER; 
      if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then 
      begin 
         ChbRunWithSystem.Checked:=Reg.ValueExists('NetMsg'); 
         Reg.CloseKey; 
      end; 
   finally 
      Reg.Free; 
   end; 
 
{-----------------消息设定----------------} 
   //离线消息 
   MyIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+sQQNumber+'\FndSetup.ini'); 
   try 
      LeaveMsg1:=MyINi.ReadString('setup','LeaveMsg1','离线消息一'); 
      LeaveMsg2:=MyINi.ReadString('setup','LeaveMsg2','离线消息二'); 
      LeaveMsg3:=MyINi.ReadString('setup','LeaveMsg3','离线消息三'); 
      LeaveMsg4:=MyINi.ReadString('setup','LeaveMsg4','离线消息四'); 
   finally 
      MyIni.Free; 
   end; 
   CmbLeaveMsg.ItemIndex:=0; 
   MemMsg.Text:=LeaveMsg1; 
 
end; 
 
procedure TFrmSetup.BtnCancleClick(Sender: TObject); 
begin 
   Close; 
end; 
 
procedure TFrmSetup.ImgFaceListClick(Sender: TObject); 
var 
   i:integer; 
   MyBmp:TBitMap; 
begin 
   i:=ImgFaceList.ItemIndex; 
   MyBmp:=TBitMap.Create; 
   ImgFaceList.ImageList.GetBitmap(i,MyBmp); 
   ImgFace.Picture.Bitmap:=MyBmp; 
end; 
 
procedure TFrmSetup.EdtUserNameKeyPress(Sender: TObject; var Key: Char); 
begin 
   if Key='*' then 
   begin 
      Key:=#0; 
      windows.Beep(999,88); 
   end; 
   if (Length(EdtUserName.Text)>=20) and (Key<>#8) then 
   begin 
      Key:=#0; 
      windows.Beep(999,88); 
   end; 
end; 
 
procedure TFrmSetup.EdtUserNameKeyDown(Sender: TObject; var Key: Word; 
  Shift: TShiftState); 
begin 
   if Key=vk_Return then 
   begin 
      BtnOK.Click; 
   end; 
 
end; 
 
procedure TFrmSetup.BtnOKClick(Sender: TObject); 
var 
   Reg:TRegistry; 
   MyIni:TIniFile; 
begin 
{处理个人信息的更改} 
   //下面为除错处理 
   if EdtUserName.Text='' then 
   begin 
      MessageBox(GetActiveWindow(),'用户名不能为空!','提示',MB_OK+MB_ICONiNFORMATION); 
      Abort; 
   end; 
   if (EdtOldPwd.Text<>'') or (EdtNewPwd1.Text<>'') or (EdtNewPwd2.Text<>'') then 
   begin 
      if EdtOldPwd.Text<>sPassword then 
      begin 
         MessageBox(GetActiveWindow(),'旧密码错误,请重新输入!','错误',MB_OK+MB_ICONERROR); 
         Abort; 
      end; 
      if EdtNewPwd1.Text<>EdtNewPwd2.Text then 
      begin 
         MessageBox(GetActiveWindow(),'两次新密码不相符,请重新输入!','错误',MB_OK+MB_ICONERROR); 
         Abort; 
      end; 
      if (EdtNewPwd1.Text='') or (EdtNewPwd2.Text='') then 
      begin 
         MessageBox(GetActiveWindow(),'新密码不能为空!','错误',MB_OK+MB_ICONERROR); 
         Abort; 
      end; 
   end; 
 
      //下面为更新数据库和全局变量 
   sUserName:=EdtUserName.Text; 
   iFaceID:=ImgFaceList.ItemIndex; 
   if EdtOldPwd.Text<>'' then sPassword:=EdtOldPwd.Text; 
   with DMShare.TblUsers do 
   begin 
      Open; 
      First; 
      if Locate('QQNumber',sQQNumber,[]) then 
      begin 
         Edit; 
         FieldValues['UserName']:=sUserName; 
         Post; 
         Edit; 
         FieldValues['FaceID']:=iFaceID; 
         Post; 
         Edit; 
         FieldValues['Password']:=sPassword; 
         Post; 
      end; 
      Close; 
   end; 
{完成个人信息更改处理} 
 
{---------------------------Next Setup--------------------} 
 
{开始处理“系统设置”} 
   bAutoShowMsg:=ChbAutoShowMsg.Checked;//自动弹出信息 
   bOnlineInfo:=ChbOnlineInfo.Checked;//上下线通知 
   bAskClose:=ChbAskClose.Checked;//取出时确认 
   //将设定写进 INI 文件 
   MyIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+sQQNumber+'\FndSetup.ini'); 
   try 
      MyIni.WriteBool('setup','AutoShowMsg',bAutoShowMsg); 
      MyIni.WriteBool('setup','OnlineInfo',bOnlineInfo); 
      MyIni.WriteBool('setup','Askclose',bASkClose); 
   finally 
      MyINI.Free; 
   end; 
 
 
   {随系统运行而运行} 
   if ChbRunWithSystem.Checked then 
   begin 
     Reg := TRegistry.Create; 
     try 
       Reg.RootKey := HKEY_CURRENT_USER; 
       if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then 
      begin 
         Reg.WriteString('NetMsg',Application.ExeName); 
         Reg.CloseKey; 
       end; 
     finally 
       Reg.Free; 
//       inherited; 
     end; 
   end 
   else 
   begin 
     Reg := TRegistry.Create; 
     try 
       Reg.RootKey := HKEY_CURRENT_USER; 
       if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then 
      begin 
         Reg.DeleteValue('NetMsg'); 
         Reg.CloseKey; 
       end; 
     finally 
       Reg.Free; 
//       inherited; 
     end; 
   end; 
 
 
{完成“系统设置”的处理} 
 
 
{----------------------Next Page Setup----------------------} 
 
{开始设置“消息设定”页} 
   //将自定义的消息写进INI文件 
   MyIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+sQQNumber+'\FndSetup.ini'); 
   try 
      MyIni.WriteString('setup','LeaveMsg1',LeaveMsg1); 
      MyIni.WriteString('setup','LeaveMsg2',LeaveMsg2); 
      MyIni.WriteString('setup','LeaveMsg3',LeaveMsg3); 
      MyIni.WriteString('setup','LeaveMsg4',LeaveMsg4); 
   finally 
      MyIni.Free; 
   end; 
 
   //处理 ItmOnline 菜单的离线部分的 caption 
   FrmMain_QQ.ItmLeave1.Caption:=LeaveMsg1; 
   FrmMain_QQ.ItmLeave2.Caption:=LeaveMsg2; 
   FrmMain_QQ.ItmLeave3.Caption:=LeaveMsg3; 
   FrmMain_QQ.ItmLeave4.Caption:=LeaveMsg4; 
 
{完成“消息设定”页的处理} 
 
 
 
   self.Close; 
 
 
 
end; 
 
procedure TFrmSetup.CmbLeaveMsgChange(Sender: TObject); 
begin 
   case CmbLeaveMsg.ItemIndex of 
     0 : MemMsg.Text:=LeaveMsg1; 
     1 : MemMsg.Text:=LeaveMsg2; 
     2 : MemMsg.Text:=LeaveMsg3; 
     3 : MemMsg.Text:=LeaveMsg4; 
   end; 
 
end; 
 
procedure TFrmSetup.Button1Click(Sender: TObject); 
begin 
   case CmbLeaveMsg.ItemIndex of 
     0 : LeaveMsg1:=MemMsg.Text; 
     1 : LeaveMsg2:=MemMsg.Text; 
     2 : LeaveMsg3:=MemMsg.Text; 
     3 : LeaveMsg4:=MemMsg.Text; 
   end; 
 
end; 
 
procedure TFrmSetup.MemMsgKeyPress(Sender: TObject; var Key: Char); 
begin 
   if Key=#13 then 
   begin 
      Key:=#0; 
   end; 
 
end; 
 
end.