⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.pas

📁 pos商场、超市管理系统
💻 PAS
字号:
unit SETUP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, NEOFORM, ComCtrls, MenuBar, ToolWin, ExtCtrls, StdCtrls,registry,
  Buttons, TFlatEditUnit, TFlatSpinEditUnit, TFlatGroupBoxUnit,
  TFlatRadioButtonUnit;

type
  TFrm_setup = class(TzypNeoForm)
    SB_CLOSE: TSpeedButton;
    SB_about: TSpeedButton;
    SB_save: TSpeedButton;
    Bevel_BUTTON: TBevel;
    SB_stop: TSpeedButton;
    FlatGroupBox1: TFlatGroupBox;
    Label1: TLabel;
    E_allname: TFlatEdit;
    Label2: TLabel;
    E_name: TFlatEdit;
    Label3: TLabel;
    E_tel: TFlatEdit;
    Label4: TLabel;
    E_address: TFlatEdit;
    FlatGroupBox2: TFlatGroupBox;
    L_days: TLabel;
    E_backupdays: TFlatSpinEditInteger;
    SB_selectpath: TSpeedButton;
    FlatGroupBox3: TFlatGroupBox;
    L_countdate1: TLabel;
    E_countdate: TFlatSpinEditInteger;
    L_countdate: TLabel;
    RB_user: TFlatRadioButton;
    RB_auto: TFlatRadioButton;
    Label5: TLabel;
    LE_datapath: TFlatEdit;
    RB_userdate: TFlatRadioButton;
    RB_alldate: TFlatRadioButton;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SB_saveClick(Sender: TObject);
    procedure E_allnameChange(Sender: TObject);
    procedure SB_CLOSEClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure RB_userClick(Sender: TObject);
    procedure SB_aboutClick(Sender: TObject);
    procedure SB_selectpathClick(Sender: TObject);
    procedure RB_autoClick(Sender: TObject);
    procedure SB_stopClick(Sender: TObject);
    procedure E_countdateChange(Sender: TObject);
    procedure RB_alldateClick(Sender: TObject);
    procedure RB_userdateClick(Sender: TObject);
    procedure E_allnameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    B_save:boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_setup: TFrm_setup;

implementation
uses frmabout, frmmain, select_dir, LOGO;

{$R *.dfm}

procedure TFrm_setup.FormCreate(Sender: TObject);
var
  TheBitmap : TBitmap;
begin
  inherited;
  self.Caption :=application.Title + ' - 系统设置';
  TheBitmap := TBitmap.Create;
  TheBitmap.Height := application.icon.Height+2;
  TheBitmap.Width := application.icon.Width+2;
  TheBitmap.Canvas.Draw(0, 0, application.Icon);
  sb_about.Glyph :=thebitmap;
  B_save:=true;
end;

procedure TFrm_setup.FormShow(Sender: TObject);
var
   reg:TRegistry;
begin
   inherited;
   reg:=TRegistry.Create;
     try
        Reg.RootKey:=HKEY_CURRENT_USER;
        if (Reg.OpenKey(S_RegTree,False))=False then
        begin
             Reg.CreateKey(S_RegTree);
        end;
        Reg.OpenKey(S_RegTree,True);
        E_allname.text:=reg.ReadString('Coname');
        e_name.text:=reg.ReadString('Username');
        E_tel.text:=reg.ReadString('Cotel');
        E_address.text:=reg.ReadString('Address');
        LE_datapath.Text :=reg.ReadString('DataPath');
        if LE_datapath.Text='' then LE_datapath.Text:='【系统默认】';
        if reg.Readstring('autosave')='1' then
          rb_auto.Checked :=true
        else
          rb_user.Checked :=true;
        e_backupdays.text:=Reg.readString('savedays');
        if trim(e_backupdays.text)='' then
            e_backupdays.text:='10';
        if reg.ReadString('Countdate')='1' then
          rb_userdate.Checked :=true
        else
          rb_alldate.Checked :=true;
        try
           E_countdate.Value :=reg.ReadInteger('Dateday');
        except
           E_countdate.Value :=25;
        end;
        E_countdateChange(sender) ;
        Reg.CloseKey;
     finally
        Reg.CloseKey;
        Reg.Free;
     end;
   sb_save.Enabled :=false;

end;

procedure TFrm_setup.SB_saveClick(Sender: TObject);
var
   reg:TRegistry;
begin
   inherited;
   B_save:=false;
   if messagedlg('确定要保存以上所有资料吗?',mtconfirmation,[mbyes,mbno],0)=mrno then
    begin
     B_save:=true;
     exit;
    end;
   if trim(e_allname.Text)='' then
   begin
     messagedlg('公司名称不能为空,请检查后重新输入。',mtwarning,[mbok],0);
     e_allname.SetFocus ;
     exit;
   end;
   if trim(e_name.Text)='' then
   begin
     messagedlg('负责人姓名不能为空,请检查后重新输入。',mtwarning,[mbok],0);
     e_name.SetFocus ;
     exit;
   end;
   if (not DirectoryExists(trim(LE_datapath.Text))) and (trim(LE_datapath.Text)<>'【系统默认】') then
   begin
     messagedlg('指定数据库目录不存在,请检查后重新输入。',mtwarning,[mbok],0);
     LE_datapath.SetFocus ;
     exit;
   end;

   reg:=TRegistry.Create;
     try
        Reg.RootKey:=HKEY_CURRENT_USER;
        if (Reg.OpenKey(S_RegTree,False))=False then
        begin
             Reg.CreateKey(S_RegTree);
        end;
        Reg.OpenKey(S_RegTree,True);
        Reg.WriteString('username',trim(E_name.text));
        Reg.WriteString('coname',trim(E_allname.text));
        Reg.WriteString('cotel',trim(E_tel.text));
        Reg.WriteString('address',trim(E_address.text));
        Reg.WriteString('DataPath',trim(LE_datapath.text));
        if rb_auto.Checked then
          reg.Writestring('autosave','1')
        else
          reg.writestring('autosave','0');
        Reg.WriteString('savedays',trim(e_backupdays.text));
        if rb_userdate.Checked then
           Reg.WriteString('Countdate','1')
        else
           Reg.WriteString('Countdate','0');
        Reg.WriteInteger('Dateday',E_countdate.Value); 
        Reg.CloseKey;
        sb_save.Enabled :=false;
        with frm_main do
        begin
           S_name:=trim(E_allname.text);
           S_username:=trim(E_name.text);
           S_cotel:=trim(E_tel.text);
           S_address:=trim(E_address.text);
           HWSHOPDATA:=trim(le_datapath.Text );
           if HWSHOPDATA='【系统默认】' then
           begin
              HWSHOPDATA:=ExtractFileDir(Application.ExeName);
              if (StrLen(PChar(HWSHOPDATA)) <> 3) then
                  HWSHOPDATA:=HWSHOPDATA+'\DATA\'
              else
                  HWSHOPDATA:=HWSHOPDATA+'DATA\';
           end;
           if rb_auto.Checked then
             S_autosave:='1'
           else
             S_autosave:='0';
           S_savedays:=trim(e_backupdays.text);
           IF RB_alldate.Checked then
              I_countdate:=0
           else
              I_countdate:=E_countdate.Value ;
        end;
        messagedlg('系统设置数据信息保存完毕!',mtwarning,[mbok],0);
        frm_main.Caption :=Application.Title+' - '+S_name+ '【'+HWSHOPDATA+'】';
        B_save:=true;
        finally
             Reg.CloseKey;
             Reg.Free;
        end;
     self.Hide ;
     if frm_main.Showing then
     begin
        frm_main.tb_logo.Click ;
     end;
     self.Close ;
end;

procedure TFrm_setup.E_allnameChange(Sender: TObject);
begin
  inherited;
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.SB_CLOSEClick(Sender: TObject);
begin
  inherited;
  self.Close ;
end;

procedure TFrm_setup.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  if sb_save.Enabled then
    sb_save.Click ;
  if not B_save then canclose:=false; 
end;

procedure TFrm_setup.RB_userClick(Sender: TObject);
begin
  inherited;
   E_backupdays.Enabled :=false;
   L_days.Enabled :=false;
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.SB_aboutClick(Sender: TObject);
begin
  inherited;
  Application.CreateForm(TFrm_about, Frm_about);
  Frm_about.showmodal;
  Frm_about.free;
end;

procedure TFrm_setup.SB_selectpathClick(Sender: TObject);
begin
  inherited;
  Application.CreateForm(TFrm_select_dir, Frm_select_dir);
  Frm_select_dir.DriveComboBox1.Text:=ExtractFileDrive(LE_datapath.Text);
  if (FileExists(LE_datapath.Text)) then
     Frm_select_dir.DirectoryListBox1.Directory:=LE_datapath.Text;
  if (Frm_select_dir.ShowModal=mrOK) then
     LE_datapath.Text:=Frm_select_dir.DirectoryListBox1.Directory;//Frm_select_dir.Label2.Caption;
  Frm_select_dir.free;
end;

procedure TFrm_setup.RB_autoClick(Sender: TObject);
begin
  inherited;
   E_backupdays.Enabled :=true;
   L_days.Enabled :=true;
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.SB_stopClick(Sender: TObject);
var
   reg:TRegistry;
begin
  inherited;
   reg:=TRegistry.Create;
   try
      Reg.RootKey:=HKEY_CURRENT_USER;
      reg.DeleteKey(S_RegTree);
   finally
      reg.CloseKey ;
      reg.free;
   end;
   halt;
end;

procedure TFrm_setup.E_countdateChange(Sender: TObject);
begin
  inherited;
   L_countdate.Caption :='即:从上月'+inttostr(E_countdate.Value+1)
                  +'日,至本月'+inttostr(E_countdate.Value)+'日';
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.RB_alldateClick(Sender: TObject);
begin
  inherited;
   L_countdate1.Enabled :=false;
   E_countdate.Enabled :=false;
   L_countdate.Enabled :=false;
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.RB_userdateClick(Sender: TObject);
begin
  inherited;
   L_countdate1.Enabled :=true;
   E_countdate.Enabled :=true;
   L_countdate.Enabled :=true;
   sb_save.Enabled :=true;
end;

procedure TFrm_setup.E_allnameKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
   if (key=13) or (key=40) then { 判断是按执行键}
   Begin 
      key:=0;
      perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
   end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -