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

📄 u_setoptions.pas

📁 一个简单的学籍管理软件
💻 PAS
字号:
unit U_SetOptions;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, HGrids, HDBGrids, Db, DBTables, Menus,
  Buttons, PgNavigator;

type
  TFm_SetOptions = class(TForm)
    PgCtrl_Options: TPageControl;
    Panel1: TPanel;
    Btn_Ok: TButton;
    Btn_Cancel: TButton;
    Btn_Help: TButton;
    TS_GShi01: TTabSheet;
    Lbl_BGXYse: TLabel;
    Page_BGXYSe: TPrevPage;
    BitBtn_BGXYSe: TBitBtn;
    ColorDlg: TColorDialog;
    Lbl_GDLYSe: TLabel;
    Page_GDLYSe: TPrevPage;
    BitBtn_GDLYSe: TBitBtn;
    Lbl_DQHYSe: TLabel;
    Page_DQHYSe: TPrevPage;
    BitBtn_DQHYSe: TBitBtn;
    ChkBox_GLXShi: TCheckBox;
    Lbl_DQHZti: TLabel;
    Page_DQHZTi: TPrevPage;
    BitBtn_DQHZTi: TBitBtn;
    Lbl_BGDSe: TLabel;
    Page_BGDSe: TPrevPage;
    BitBtn_BGDSe: TBitBtn;
    Lbl_BGZTYSe: TLabel;
    Page_BGZTYSe: TPrevPage;
    BitBtn_BGZTYSe: TBitBtn;
    ChkBox_HJCXSHi: TCheckBox;
    Lbl_JCHYSe: TLabel;
    Page_JCHYSe: TPrevPage;
    BitBtn_JCHYSe: TBitBtn;
    TS_GShi02: TTabSheet;
    Grid_GShi01: THDBGrid;
    Qry_Sample: TQuery;
    DS_Sample: TDataSource;
    UpSQL_Sample: TUpdateSQL;
    ChkBox_JEXian: TCheckBox;
    Lbl_YBXYse: TLabel;
    Page_YBXYSe: TPrevPage;
    BitBtn_YBXYSe: TBitBtn;
    Lbl_XSWXYse: TLabel;
    Page_XSWYSe: TPrevPage;
    BitBtn_XSWYSe: TBitBtn;
    ChkBox_SXDDi: TCheckBox;
    Grid_GShi02: THDBGrid;
    Lbl_QFWYSe: TLabel;
    Page_QFWYSe: TPrevPage;
    BitBtn_QFWYSe: TBitBtn;
    Lbl_ZBXYSe: TLabel;
    Page_ZBXYSe: TPrevPage;
    BitBtn_ZBXYSe: TBitBtn;
    ChkBox_HXDBian: TCheckBox;
    ChkBox_GDLSXian: TCheckBox;
    TS_CShu: TTabSheet;
    GroupBox1: TGroupBox;
    RdBtn_Select: TRadioButton;
    RdBtn_Input: TRadioButton;
    procedure BitBtn_BGDSeClick(Sender: TObject);
    procedure BitBtn_BGZTYSeClick(Sender: TObject);
    procedure BitBtn_BGXYSeClick(Sender: TObject);
    procedure BitBtn_GDLYSeClick(Sender: TObject);
    procedure ChkBox_GLXShiClick(Sender: TObject);
    procedure BitBtn_DQHYSeClick(Sender: TObject);
    procedure BitBtn_DQHZTiClick(Sender: TObject);
    procedure ChkBox_HJCXSHiClick(Sender: TObject);
    procedure BitBtn_JCHYSeClick(Sender: TObject);
    procedure ChkBox_JEXianClick(Sender: TObject);
    procedure BitBtn_YBXYSeClick(Sender: TObject);
    procedure BitBtn_XSWYSeClick(Sender: TObject);
    procedure BitBtn_QFWYSeClick(Sender: TObject);
    procedure BitBtn_ZBXYSeClick(Sender: TObject);
    procedure ChkBox_SXDDiClick(Sender: TObject);
    procedure ChkBox_HXDBianClick(Sender: TObject);
    procedure ChkBox_GDLSXianClick(Sender: TObject);
  private
  public
  end;

procedure Show_SetOptions;
implementation

uses Math, IniFiles, U_GlobalVar, U_GlobalProc, U_Main;

{$R *.DFM}

procedure Show_SetOptions;
var
  Fm_SetOptions: TFm_SetOptions;
  i, j: integer;
begin
  Fm_SetOptions := TFm_SetOptions.Create(Application);
  with Fm_SetOptions do
  try
    //  系统登录方式
    if SI_LogonStyle = 1 then
      RdBtn_Select.Checked := True
    else
      RdBtn_Input.Checked := True;
    //  表格显示格式
    with GridStyles do
    begin
      Page_BGDSe.Color := GroundColor;
      Page_BGZTYSe.Color := FontColor;
      Page_BGXYSe.Color := LineColor;
      Page_GDLYSe.Color := LmtColColor;
      ChkBox_GLXShi.Checked := CurRowHiLight;
      Page_DQHYSe.Color := CurRowColor;
      Page_DQHZTi.Color := CurFntColor;
      ChkBox_HJCXSHi.Checked := RowAlter;
      Page_JCHYSe.Color := AlterColor;
      ChkBox_JEXian.Checked := ShowMoneyLine;
      Page_YBXYSe.Color := CommLineColor;
      Page_XSWYSe.Color := DotLineColor;
      Page_QFWYSe.Color := KiloLineColor;
      Page_ZBXYSe.Color := LeftLineColor;
      ChkBox_SXDDi.Checked := VertToBound;
      ChkBox_HXDBian.Checked := HorzToBound;
      ChkBox_GDLSXian.Checked := DblRightLine;
    end;
    with Qry_Sample do
    begin
      Open;
      while not Eof do
        Delete;
      InsertRecord(['固定行2', '字符行2', 4527.46]);
      InsertRecord(['固定行1', '字符行1', 23002.56]);
    end;
    RefreshGridStyle(Grid_GShi01);
    RefreshGridStyle(Grid_GShi02);
    if ShowModal = idOk then
    begin
      if RdBtn_Select.Checked then
        SI_LogonStyle := 1
      else
        SI_LogonStyle := 0;
      //  表格显示格式
      with GridStyles do
      begin
        GroundColor := Page_BGDSe.Color;
        FontColor := Page_BGZTYSe.Color;
        LineColor := Page_BGXYSe.Color;
        LmtColColor := Page_GDLYSe.Color;
        CurRowHiLight := ChkBox_GLXShi.Checked;
        CurRowColor := Page_DQHYSe.Color;
        CurFntColor := Page_DQHZTi.Color;
        RowAlter := ChkBox_HJCXSHi.Checked;
        AlterColor := Page_JCHYSe.Color;
        ShowMoneyLine := ChkBox_JEXian.Checked;
        CommLineColor := Page_YBXYSe.Color;
        DotLineColor := Page_XSWYSe.Color;
        KiloLineColor := Page_QFWYSe.Color;
        LeftLineColor := Page_ZBXYSe.Color;
        VertToBound := ChkBox_SXDDi.Checked;
        HorzToBound := ChkBox_HXDBian.Checked;
        DblRightLine := ChkBox_GDLSXian.Checked;
        with TIniFile.Create(S_SysPath + '\' + StudentIniFile), GridStyles do
        try
          //  系统参数
          WriteInteger('系统参数', '登录方式', SI_LogonStyle);
          //  表格格式参数
          WriteInteger('表格格式', '表格底色', GroundColor);
          WriteInteger('表格格式', '表格字体颜色', FontColor);
          WriteInteger('表格格式', '表格线颜色', LineColor);
          WriteInteger('表格格式', '固定列颜色', LmtColColor);
          WriteBool('表格格式', '当前行高亮显示', CurRowHiLight);
          WriteInteger('表格格式', '当前行颜色', CurRowColor);
          WriteInteger('表格格式', '当前行字体颜色', CurFntColor);
          WriteBool('表格格式', '行颜色交错显示', RowAlter);
          WriteInteger('表格格式', '交错行颜色', AlterColor);
          WriteBool('表格格式', '显示金额线', ShowMoneyLine);
          WriteInteger('表格格式', '一般分隔线颜色', CommLineColor);
          WriteInteger('表格格式', '小数位分隔线颜色', DotLineColor);
          WriteInteger('表格格式', '千位分隔线颜色', KiloLineColor);
          WriteInteger('表格格式', '左边线颜色', LeftLineColor);
          WriteBool('表格格式', '竖线显示到底', VertToBound);
          WriteBool('表格格式', '横线显示到边', HorzToBound);
          WriteBool('表格格式', '固定列右线显示双线', DblRightLine);
        finally
          Free;
        end;
      end;
      for i := 0 to Fm_Main.MDIChildCount - 1 do
        with Fm_Main.MDIChildren[i] do
        begin
          for j := 0 to ComponentCount - 1 do
            if Components[j] is THCustomDBGrid then
              RefreshGridStyle(Components[j]);
        end;
    end;
  finally
    Free;
  end;
end;

procedure TFm_SetOptions.BitBtn_BGDSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_BGDSe.Color;
  if ColorDlg.Execute then
  begin
    Page_BGDSe.Color := ColorDlg.Color;
    Grid_GShi01.Color := ColorDlg.Color;
    Grid_GShi02.Color := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.BitBtn_BGZTYSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_BGZTYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_BGZTYSe.Color := ColorDlg.Color;
    Grid_GShi01.Font.Color := ColorDlg.Color;
    Grid_GShi02.Font.Color := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.BitBtn_BGXYSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_BGXYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_BGXYSe.Color := ColorDlg.Color;
    Grid_GShi01.LineColor := ColorDlg.Color;
    Grid_GShi02.LineColor := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.BitBtn_GDLYSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_GDLYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_GDLYSe.Color := ColorDlg.Color;
    Grid_GShi01.LimitedColor := ColorDlg.Color;
    Grid_GShi02.LimitedColor := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.ChkBox_GLXShiClick(Sender: TObject);
begin
  Grid_GShi01.CurRowHighlight := ChkBox_GLXShi.Checked;
  Grid_GShi02.CurRowHighlight := ChkBox_GLXShi.Checked;
end;

procedure TFm_SetOptions.BitBtn_DQHYSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_DQHYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_DQHYSe.Color := ColorDlg.Color;
    Grid_GShi01.CurRowColor := ColorDlg.Color;
    Grid_GShi02.CurRowColor := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.BitBtn_DQHZTiClick(Sender: TObject);
begin
  ColorDlg.Color := Page_DQHZTi.Color;
  if ColorDlg.Execute then
  begin
    Page_DQHZTi.Color := ColorDlg.Color;
    Grid_GShi01.CurRowTextColor := ColorDlg.Color;
    Grid_GShi02.CurRowTextColor := ColorDlg.Color;
  end;
end;

procedure TFm_SetOptions.ChkBox_HJCXSHiClick(Sender: TObject);
begin
  Grid_GShi01.RowAlternate := ChkBox_HJCXSHi.Checked;
  Grid_GShi02.RowAlternate := ChkBox_HJCXSHi.Checked;
end;

procedure TFm_SetOptions.BitBtn_JCHYSeClick(Sender: TObject);
begin
  ColorDlg.Color := Page_JCHYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_JCHYSe.Color := ColorDlg.Color;
    Grid_GShi01.RowAlternateColor := ColorDlg.Color;
    Grid_GShi02.RowAlternateColor := ColorDlg.Color;
  end;
end;

type
  THGridCreak = class(THCustomDBGrid);

procedure TFm_SetOptions.ChkBox_JEXianClick(Sender: TObject);
begin
  if ChkBox_JEXian.Checked then
  begin
    THGridCreak(Grid_GShi01).Options := THGridCreak(Grid_GShi01).Options + [hgMoneyLine];
    THGridCreak(Grid_GShi02).Options := THGridCreak(Grid_GShi02).Options + [hgMoneyLine];
  end
  else
  begin
    THGridCreak(Grid_GShi01).Options := THGridCreak(Grid_GShi01).Options - [hgMoneyLine];
    THGridCreak(Grid_GShi02).Options := THGridCreak(Grid_GShi02).Options - [hgMoneyLine];
  end;
end;

procedure TFm_SetOptions.BitBtn_YBXYSeClick(Sender: TObject);
var
  i: integer;
begin
  ColorDlg.Color := Page_YBXYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_YBXYSe.Color := ColorDlg.Color;
    for i := 0 to Grid_GShi01.Columns.Count - 1 do
    begin
      if Grid_GShi01.Columns[i].MoneyLine then
      begin
        Grid_GShi01.Columns[i].CommLineColor := ColorDlg.Color; //  一般分隔线颜色
        Grid_GShi02.Columns[i].CommLineColor := ColorDlg.Color; //  一般分隔线颜色
      end;
    end;
  end;
end;

procedure TFm_SetOptions.BitBtn_XSWYSeClick(Sender: TObject);
var
  i: integer;
begin
  ColorDlg.Color := Page_XSWYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_XSWYSe.Color := ColorDlg.Color;
    for i := 0 to Grid_GShi01.Columns.Count - 1 do
    begin
      if Grid_GShi01.Columns[i].MoneyLine then
      begin
        Grid_GShi01.Columns[i].DecLineColor := ColorDlg.Color;
        Grid_GShi02.Columns[i].DecLineColor := ColorDlg.Color;
      end;
    end;
  end;
end;

procedure TFm_SetOptions.BitBtn_QFWYSeClick(Sender: TObject);
var
  i: integer;
begin
  ColorDlg.Color := Page_QFWYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_QFWYSe.Color := ColorDlg.Color;
    for i := 0 to Grid_GShi01.Columns.Count - 1 do
    begin
      if Grid_GShi01.Columns[i].MoneyLine then
      begin
        Grid_GShi01.Columns[i].KiloLineColor := ColorDlg.Color;
        Grid_GShi02.Columns[i].KiloLineColor := ColorDlg.Color;
      end;
    end;
  end;
end;

procedure TFm_SetOptions.BitBtn_ZBXYSeClick(Sender: TObject);
var
  i: integer;
begin
  ColorDlg.Color := Page_ZBXYSe.Color;
  if ColorDlg.Execute then
  begin
    Page_ZBXYSe.Color := ColorDlg.Color;
    for i := 0 to Grid_GShi01.Columns.Count - 1 do
    begin
      if Grid_GShi01.Columns[i].MoneyLine then
      begin
        Grid_GShi01.Columns[i].LeftLineColor := ColorDlg.Color;
        Grid_GShi02.Columns[i].LeftLineColor := ColorDlg.Color;
      end;
    end;
  end;
end;

procedure TFm_SetOptions.ChkBox_SXDDiClick(Sender: TObject);
begin
  Grid_GShi01.VertToBound := ChkBox_SXDDi.Checked;
  Grid_GShi02.VertToBound := ChkBox_SXDDi.Checked;
end;

procedure TFm_SetOptions.ChkBox_HXDBianClick(Sender: TObject);
begin
  Grid_GShi01.HorzToBound := ChkBox_HXDBian.Checked;
  Grid_GShi02.HorzToBound := ChkBox_HXDBian.Checked;
end;

procedure TFm_SetOptions.ChkBox_GDLSXianClick(Sender: TObject);
begin
  Grid_GShi01.Columns[Grid_GShi01.LimitedCol - 1].RightDouble :=
    ChkBox_GDLSXian.Checked;
  Grid_GShi02.Columns[Grid_GShi02.LimitedCol - 1].RightDouble :=
    ChkBox_GDLSXian.Checked;
end;

end.

⌨️ 快捷键说明

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