usersettingfrm.~pas

来自「群星医药系统源码」· ~PAS 代码 · 共 335 行

~PAS
335
字号
unit UserSettingFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, TFlatTabControlUnit, TFlatButtonUnit, TFlatSpeedButtonUnit,
  TFlatPanelUnit, RzSpnEdt, StdCtrls, Mask, RzEdit, RzCmboBx, RzPanel,
  RzLstBox, RzButton, RzTabs, RzBtnEdt, IniFiles, RzLabel, RzRadChk,
  xBaseFrm, iMainFrm, uDataTypes, uGlobal;

type
  TFmUserSetting = class(TxBaseForm)
    TabCtrl1: TRzTabControl;
    Notebook1: TNotebook;
    RzPanel2: TRzPanel;
    Panel2: TPanel;
    btnApply: TFlatButton;
    BtnLoadSetting: TFlatButton;
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    Label4: TLabel;
    RzGroupBox2: TRzGroupBox;
    Label3: TLabel;
    edRecords: TRzSpinEdit;
    edFieldLayoutCfgFile: TRzButtonEdit;
    GroupBox1: TRzGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    edTitlePanelColor: TRzColorEdit;
    edGridFixColor: TRzColorEdit;
    edGridRowColor1: TRzColorEdit;
    edGridRowColor2: TRzColorEdit;
    edFormBackColor: TRzColorEdit;
    BtnExit: TFlatButton;
    Label8: TLabel;
    edMachineNo: TRzSpinEdit;
    Label9: TLabel;
    edBranchNo: TRzSpinEdit;
    cmbTheme: TRzComboBox;
    Label10: TLabel;
    btnSaveThemeColor: TFlatSpeedButton;
    btnDeleteThemeColor: TFlatButton;
    Label11: TLabel;
    edNavigationBack: TRzColorEdit;
    Label12: TLabel;
    edNavigationGradient: TRzColorEdit;
    chkNavigationVisible: TRzCheckBox;
    Label13: TLabel;
    edMenuColor: TRzColorEdit;
    Label14: TLabel;
    edMenuIconBackColor: TRzColorEdit;
    chkUseSysMenuColor: TRzCheckBox;
    chkEligibleEqualAll: TRzCheckBox;
    CHKIsExclude: TRzCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BtnApplyClick(Sender: TObject);
    procedure BtnLoadSettingClick(Sender: TObject);
    procedure TabCtrl1Change(Sender: TObject);
    procedure edFieldLayoutCfgFileButtonClick(Sender: TObject);
    procedure BtnExitClick(Sender: TObject);
    procedure cmbThemeChange(Sender: TObject);
    procedure btnSaveThemeColorClick(Sender: TObject);
    procedure ReadThemeList;
    procedure SaveTheme(ThemeName: String; bDefault: Boolean=false);
    Procedure ReadTheme(ThemeName: String);
    procedure btnDeleteThemeColorClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

  private
    SvrSetting: PSvrSetting;
    LocSetting: PLocSetting;
    IFmMain: IMainForm;
    AppPath, sThemeIni: String;
    Function CheckSetting: Boolean;
  public
    { Public declarations }
  end;

var
  FmUserSetting: TFmUserSetting;
  
implementation

uses ceGlobal;

{$R *.dfm}

procedure TFmUserSetting.FormCreate(Sender: TObject);
begin
  AppPath := ExtractFilePath(application.ExeName);
  sThemeIni := AppPath+'ThemeColor.ini';
  IFmMain:=Application.MainForm As IMainForm;
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  if (LocSetting^.BranchNo>0)and(LocSetting^.MachineNo>0) then
  begin
    FormStyle := fsMDIChild;
    BorderStyle := bsSizeable;
  end else begin
    FormStyle := fsNormal;
    BorderStyle := bsDialog;
  end;
end;

procedure TFmUserSetting.FormShow(Sender: TObject);
begin
  Inherited;
  TabCtrl1.TabIndex := 0;
  NoteBook1.PageIndex := 0;
  ReadThemeList;
  BtnLoadSetting.Click;
end;

procedure TFmUserSetting.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose := CheckSetting;
end;

function TFmUserSetting.CheckSetting: Boolean;
var b1: Boolean;
begin
  b1 := (LocSetting^.BranchNo>0)and(LocSetting^.MachineNo>0);
  if not b1 then
    Application.MessageBox('请设置店号及机号信息,并保存设置!', '消息', MB_ICONINFORMATION);
  Result := b1;
end;

procedure TFmUserSetting.ReadThemeList;
var b1: Boolean;
    i: Integer;
    ThemeName: String;
begin
  cmbTheme.Clear;
  b1 := FileExists(sThemeIni);
  with TIniFile.Create(sThemeIni) do
  begin
    if not b1 then
    begin
      WriteInteger('系统默认','FormBackColor', FormBackColor);
      WriteInteger('系统默认','TitlePanelColor', TitlePanelColor);
      WriteInteger('系统默认','GridFixColor', GridFixColor);
      WriteInteger('系统默认','GridRowColor1', GridRowColor1);
      WriteInteger('系统默认','GridRowColor2', GridRowColor2);
      WriteInteger('系统默认','NavigationBack', NavigationBack);
      WriteInteger('系统默认','NavigationGradient', NavigationGradient);
      WriteInteger('系统默认','MenuColor', MenuColor);
      WriteInteger('系统默认','MenuIconBackColor', MenuIconBackColor);
      WriteBool   ('系统默认','UseSysMenuColor', UseSysMenuColor);
      WriteString('$Default', 'CurrTheme', '系统默认');
    end;
    ReadSections(cmbTheme.items);
    i := cmbTheme.Items.IndexOf('$Default');
    if i>=0 then
      cmbTheme.Items.Delete(i);
    ThemeName := ReadString('$Default', 'CurrTheme', '');
    i := cmbTheme.Items.IndexOf(ThemeName);
    if i<0 then i:=0;
    if cmbTheme.Count>i then
      cmbTheme.ItemIndex := i;
    Free;
  end;
end;

procedure TFmUserSetting.saveTheme(ThemeName: String; bDefault: Boolean);
begin
  if ThemeName='' then Exit;
  with TIniFile.Create(sThemeIni) do
  begin
    WriteInteger(ThemeName, 'FormBackcolor',edFormBackcolor.SelectedColor);
    WriteInteger(ThemeName, 'TitlePanelColor',edTitlePanelColor.SelectedColor);
    WriteInteger(ThemeName, 'GridFixColor',edGridFixColor.SelectedColor);
    WriteInteger(ThemeName, 'GridRowColor1',edGridRowColor1.SelectedColor);
    WriteInteger(ThemeName, 'GridRowColor2',edGridRowColor2.SelectedColor);
    WriteInteger(ThemeName, 'NavigationBack',edNavigationBack.SelectedColor);
    WriteInteger(ThemeName, 'NavigationGradient',edNavigationGradient.SelectedColor);
    WriteBool   (ThemeName, 'UseSysMenuColor', chkUseSysMenuColor.Checked);
    WriteInteger(ThemeName, 'MenuColor', edMenuColor.SelectedColor);
    WriteInteger(ThemeName, 'MenuIconBackColor',MenuIconBackColor);
    if bDefault then
      WriteString('$Default', 'CurrTheme', ThemeName);
    Free;
  end;
  if cmbTheme.Items.IndexOf(ThemeName)<0 then
    cmbTheme.Items.Add(ThemeName);
end;

procedure TFmUserSetting.ReadTheme(ThemeName: String);
begin
  with TIniFile.Create(sThemeIni) do
  begin
    edFormBackcolor.SelectedColor     := ReadInteger(ThemeName,'FormBackColor', FormBackColor);
    edTitlePanelColor.SelectedColor   := ReadInteger(ThemeName,'TitlePanelColor', TitlePanelColor);
    edGridFixColor.SelectedColor      := ReadInteger(ThemeName,'GridFixColor', GridFixColor);
    edGridRowColor1.SelectedColor     := ReadInteger(ThemeName,'GridRowColor1', GridRowColor1);
    edGridRowColor2.SelectedColor     := ReadInteger(ThemeName,'GridRowColor2', GridRowColor2);
    edNavigationBack.SelectedColor    := ReadInteger(ThemeName,'NavigationBack', NavigationBack);
    edNavigationGradient.SelectedColor:= ReadInteger(ThemeName,'NavigationGradient', NavigationGradient);
    chkUseSysMenuColor.Checked        := ReadBool   (ThemeName, 'UseSysMenuColor', true);
    edMenuColor.SelectedColor         := ReadInteger(ThemeName,'MenuColor',MenuColor);
    edMenuIconBackColor.SelectedColor := ReadInteger(ThemeName,'MenuIconBackColor',MenuIconBackColor);
    Free;
  end;
end;

procedure TFmUserSetting.BtnApplyClick(Sender: TObject);
begin
{  SvrSetting.ConnType := cbConnType.ItemIndex;
  SvrSetting.SvrAddr:=edAddress.Text;
  SvrSetting.SvrPort:=edPort.IntValue;}
  locSetting.PacketRecs:=edRecords.IntValue;
  LocSetting.MachineNo :=edMachineNo.IntValue; //存储本机型号
  LocSetting.BranchNo  :=edBranchNo.IntValue;  //店号
  LocSetting.NavVisible := chkNavigationVisible.Checked ;   //是否显示系统导航
  LocSetting.UseSysMenuColor := chkUseSysMenuColor.Checked; //XP菜单是否使用系统默认颜色
  LocSetting.EligibleEqualAll := chkEligibleEqualAll.Checked; //合格数量等于验收数量;
  LocSetting.IsExclude := ChkIsExclude.Checked; //是否产生拒收单
  locSetting.FieldLayoutCfgFile := edFieldLayoutCfgFile.Text;
  IFmMain.IFmMainEx.SaveSetting;
  FormBackColor := edFormBackColor.SelectedColor;
  TitlePanelColor:=edTitlePanelColor.SelectedColor;
  GridFixColor  := edGridFixColor.SelectedColor;
  GridRowColor1 := edGridRowColor1.SelectedColor;
  GridRowColor2 := edGridRowColor2.SelectedColor;
  NavigationBack := edNavigationBack.SelectedColor;
  NavigationGradient := edNavigationGradient.SelectedColor;
  UseSysMenuColor := chkUseSysMenuColor.Checked;
  MenuColor := edMenuColor.SelectedColor;
  MenuIconBackColor := edMenuIconBackColor.SelectedColor;
  with TIniFile.Create(IFmMain.IniFileName) do begin
    WriteInteger('LocaSetting', 'FormBackColor', FormBackColor);
    WriteInteger('LocaSetting', 'TitlePanelColor', TitlePanelColor);
    WriteInteger('LocaSetting', 'GridFixColor',  GridFixColor);
    WriteInteger('LocaSetting', 'GridRowColor1', GridRowColor1);
    WriteInteger('LocaSetting', 'GridRowColor2', GridRowColor2);
    WriteInteger('LocaSetting', 'NavigationBack',NavigationBack);
    WriteInteger('LocaSetting', 'NavigationGradient',NavigationGradient);
    WriteBool   ('LocaSetting', 'UseSysMenuColor', UseSysMenuColor);
    WriteInteger('LocaSetting', 'MenuColor', MenuColor);
    WriteInteger('LocaSetting', 'MenuIconBackColor', MenuIconBackColor);
    Free;
  end;
  SaveTheme(cmbTheme.Text, true);
  IFmMain.OnSettingChange(0);
  IFmMain.SetNavVisible(chkNavigationVisible.Checked);
  IFmMain.IFmMainEx.ChangeNavigationColor;
end;

procedure TFmUserSetting.BtnLoadSettingClick(Sender: TObject);
begin
  SvrSetting := IFmMain.IFmMainEx.GetSvrSetting;
  LocSetting := IFmMain.IFmMainEx.GetLOcSetting;
  edRecords.IntValue := LocSetting.PacketRecs;
  edMachineNo.IntValue := LocSetting.MachineNo; //本台电脑机型号;
  edBranchNo.IntValue  := LocSetting.BranchNo;  //店号;
  chkNavigationVisible.Checked := LocSetting.NavVisible;    //系统导航
  chkUseSysMenuColor.Checked := LocSetting.UseSysMenuColor; //XP菜单是否使用系统默认颜色
  chkEligibleEqualAll.Checked := LocSetting.EligibleEqualAll;
  chkIsExclude.Checked := LocSetting.IsExclude;
  edFieldLayoutCfgFile.Text := locSetting.FieldLayoutCfgFile;
  edFormBackColor.SelectedColor := FormBackColor;
  edTitlePanelColor.SelectedColor:=TitlePanelColor;
  edGridFixColor.SelectedColor  := GridFixColor;
  edGridRowColor1.SelectedColor := GridRowColor1;
  edGridRowColor2.SelectedColor := GridRowColor2;
  edNavigationBack.SelectedColor := NavigationBack;
  edNavigationGradient.SelectedColor := NavigationGradient;
  edMenuColor.SelectedColor := MenuColor;
  edMenuIconBackColor.SelectedColor := MenuIconBackColor;
  chkUseSysMenuColor.Checked := UseSysMenuColor;
  IFmMain.SetNavVisible(chkNavigationVisible.Checked);
  IFmMain.IFmMainEx.ChangeNavigationColor;
end;

procedure TFmUserSetting.TabCtrl1Change(Sender: TObject);
begin
  NoteBook1.PageIndex := TabCtrl1.TabIndex;
end;

procedure TFmUserSetting.edFieldLayoutCfgFileButtonClick(Sender: TObject);
begin
  with OpenDialog1 do begin
    FileName := edFieldLayoutCfgFile.Text;
    if Execute then
      edFieldLayoutCfgFile.Text := FileName;
  end;
end;

procedure TFmUserSetting.BtnExitClick(Sender: TObject);
begin
  Close;
end;

procedure TFmUserSetting.cmbThemeChange(Sender: TObject);
begin
  ReadTheme(cmbTheme.Text);
end;

procedure TFmUserSetting.btnSaveThemeColorClick(Sender: TObject);
var NewTheme: String;
begin
  NewTheme := Trim(xInputBox('保存配色方案','将配色方案另存为:', cmbTheme.Text));
  if NewTheme<>'' then
    SaveTheme(NewTheme);
end;

procedure TFmUserSetting.btnDeleteThemeColorClick(Sender: TObject);
var ThemeName :String;
    i: Integer;
begin
  ThemeName := cmbTheme.Text;
  if (ThemeName='') then
    Exit;
  with TIniFile.Create(sThemeIni) do
  begin
    EraseSection(ThemeName);
    Free;
  end;
  i := cmbTheme.Items.IndexOf(ThemeName);
  cmbTheme.Items.Delete(i);
end;


initialization
  RegisterClass(TFmUserSetting);

finalization
  UnRegisterClass(TFmUserSetting);

end.

⌨️ 快捷键说明

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