usersettingfrm.pas
来自「群星医药系统源码」· PAS 代码 · 共 331 行
PAS
331 行
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;
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.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 + -
显示快捷键?