OptionFrm.pas 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. unit OptionFrm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ExtCtrls, ComCtrls, XPMenu;
  6. type
  7. TOptionForm = class(TForm)
  8. pcOptions: TPageControl;
  9. tsCommon: TTabSheet;
  10. btnOk: TButton;
  11. btnCancel: TButton;
  12. lblCommon: TLabel;
  13. pnlUserInfo: TPanel;
  14. xpm: TXPMenu;
  15. cbAutoSave: TCheckBox;
  16. lblSaveInterval: TLabel;
  17. cbbSaveIntervall: TComboBox;
  18. lblMinutes: TLabel;
  19. gbOverRange: TGroupBox;
  20. lblTitleOverRange: TLabel;
  21. rbLedger: TRadioButton;
  22. rbDeal: TRadioButton;
  23. rbBoth: TRadioButton;
  24. GroupBox1: TGroupBox;
  25. cbExcelWithMis: TCheckBox;
  26. Label1: TLabel;
  27. edtOverRangePercent: TEdit;
  28. Label2: TLabel;
  29. TabSheet1: TTabSheet;
  30. rgGatherZJJLSelect: TRadioGroup;
  31. imgHelp: TImage;
  32. lHintOut: TLabel;
  33. lHintIn: TLabel;
  34. pnlGatherZJJLSelectHint: TPanel;
  35. procedure cbAutoSaveClick(Sender: TObject);
  36. procedure rbLedgerClick(Sender: TObject);
  37. procedure edtOverRangePercentKeyPress(Sender: TObject; var Key: Char);
  38. procedure edtOverRangePercentExit(Sender: TObject);
  39. procedure edtOverRangePercentKeyDown(Sender: TObject; var Key: Word;
  40. Shift: TShiftState);
  41. procedure imgHelpClick(Sender: TObject);
  42. private
  43. procedure SetSaveIntervalEnable(AEnable: Boolean);
  44. function GetOverRangeType: Integer;
  45. procedure SetOverRangeType(const Value: Integer);
  46. public
  47. procedure Load;
  48. procedure Save;
  49. property OverRangeType: Integer read GetOverRangeType write SetOverRangeType;
  50. end;
  51. procedure ModifiedOptions;
  52. implementation
  53. {$R *.dfm}
  54. uses
  55. Globals, ConfigDoc;
  56. procedure ModifiedOptions;
  57. var
  58. OptionForm: TOptionForm;
  59. begin
  60. OptionForm := TOptionForm.Create(nil);
  61. try
  62. OptionForm.Load;
  63. OptionForm.ClientHeight := 338;
  64. OptionForm.ClientWidth := 479;
  65. if OptionForm.ShowModal = mrOk then
  66. OptionForm.Save;
  67. finally
  68. OptionForm.Free;
  69. end;
  70. end;
  71. { TOptionForm }
  72. procedure TOptionForm.Load;
  73. begin
  74. with SupportManager.ConfigInfo do
  75. begin
  76. cbAutoSave.Checked := AutoSave;
  77. SetSaveIntervalEnable(cbAutoSave.Checked);
  78. cbbSaveIntervall.Text := IntToStr(AutoSaveInterval);
  79. Self.OverRangeType := OverRangeType;
  80. edtOverRangePercent.Text := IntToStr(OverRangePercent);
  81. cbExcelWithMis.Checked := ExcelWithMis;
  82. rgGatherZJJLSelect.ItemIndex := GatherZJJLSelect;
  83. end;
  84. end;
  85. procedure TOptionForm.Save;
  86. begin
  87. with SupportManager.ConfigInfo do
  88. begin
  89. AutoSave := cbAutoSave.Checked;
  90. AutoSaveInterval := StrToIntDef(cbbSaveIntervall.Text, 15);
  91. OverRangeType := Self.OverRangeType;
  92. OverRangePercent := StrToIntDef(edtOverRangePercent.Text, 100);
  93. ExcelWithMis := cbExcelWithMis.Checked;
  94. GatherZJJLSelect := rgGatherZJJLSelect.ItemIndex;
  95. end;
  96. end;
  97. procedure TOptionForm.cbAutoSaveClick(Sender: TObject);
  98. begin
  99. SetSaveIntervalEnable(cbAutoSave.Checked);
  100. end;
  101. procedure TOptionForm.SetSaveIntervalEnable(AEnable: Boolean);
  102. begin
  103. lblSaveInterval.Enabled := AEnable;
  104. cbbSaveIntervall.Enabled := AEnable;
  105. lblMinutes.Enabled := AEnable;
  106. end;
  107. function TOptionForm.GetOverRangeType: Integer;
  108. begin
  109. if rbLedger.Checked then
  110. Result := rbLedger.Tag
  111. else if rbDeal.Checked then
  112. Result := rbDeal.Tag
  113. else if rbBoth.Checked then
  114. Result := rbBoth.Tag;
  115. end;
  116. procedure TOptionForm.SetOverRangeType(const Value: Integer);
  117. begin
  118. rbLedger.Checked := rbLedger.Tag = Value;
  119. rbDeal.Checked := rbDeal.Tag = Value;
  120. rbBoth.Checked := rbBoth.Tag = Value;
  121. end;
  122. procedure TOptionForm.rbLedgerClick(Sender: TObject);
  123. begin
  124. TRadioButton(Sender).Checked := True;
  125. end;
  126. procedure TOptionForm.edtOverRangePercentKeyPress(Sender: TObject;
  127. var Key: Char);
  128. begin
  129. if not (Key in ['0'..'9', #8, #13]) then
  130. Key := #0;
  131. end;
  132. procedure TOptionForm.edtOverRangePercentExit(Sender: TObject);
  133. var
  134. fPer: Double;
  135. begin
  136. fPer := StrToIntDef(TEdit(Sender).text, 0);
  137. if (fPer < 50) then
  138. TEdit(Sender).text := '50'
  139. else if (fPer > 100) then
  140. TEdit(Sender).text := '100';
  141. end;
  142. procedure TOptionForm.edtOverRangePercentKeyDown(Sender: TObject;
  143. var Key: Word; Shift: TShiftState);
  144. var
  145. fPer: Double;
  146. begin
  147. if (Key = 13) then
  148. begin
  149. fPer := StrToIntDef(TEdit(Sender).text, 0);
  150. if (fPer < 50) then
  151. TEdit(Sender).text := '50'
  152. else if (fPer > 100) then
  153. TEdit(Sender).text := '100';
  154. end;
  155. end;
  156. procedure TOptionForm.imgHelpClick(Sender: TObject);
  157. begin
  158. pnlGatherZJJLSelectHint.Visible := not pnlGatherZJJLSelectHint.Visible;
  159. end;
  160. end.