OptionFrm.pas 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. procedure cbAutoSaveClick(Sender: TObject);
  30. procedure rbLedgerClick(Sender: TObject);
  31. procedure edtOverRangePercentKeyPress(Sender: TObject; var Key: Char);
  32. procedure edtOverRangePercentExit(Sender: TObject);
  33. procedure edtOverRangePercentKeyDown(Sender: TObject; var Key: Word;
  34. Shift: TShiftState);
  35. private
  36. procedure SetSaveIntervalEnable(AEnable: Boolean);
  37. function GetOverRangeType: Integer;
  38. procedure SetOverRangeType(const Value: Integer);
  39. public
  40. procedure Load;
  41. procedure Save;
  42. property OverRangeType: Integer read GetOverRangeType write SetOverRangeType;
  43. end;
  44. procedure ModifiedOptions;
  45. implementation
  46. {$R *.dfm}
  47. uses
  48. Globals, ConfigDoc;
  49. procedure ModifiedOptions;
  50. var
  51. OptionForm: TOptionForm;
  52. begin
  53. OptionForm := TOptionForm.Create(nil);
  54. try
  55. OptionForm.Load;
  56. OptionForm.ClientHeight := 338;
  57. OptionForm.ClientWidth := 479;
  58. if OptionForm.ShowModal = mrOk then
  59. OptionForm.Save;
  60. finally
  61. OptionForm.Free;
  62. end;
  63. end;
  64. { TOptionForm }
  65. procedure TOptionForm.Load;
  66. begin
  67. with SupportManager.ConfigInfo do
  68. begin
  69. cbAutoSave.Checked := AutoSave;
  70. SetSaveIntervalEnable(cbAutoSave.Checked);
  71. cbbSaveIntervall.Text := IntToStr(AutoSaveInterval);
  72. Self.OverRangeType := OverRangeType;
  73. edtOverRangePercent.Text := IntToStr(OverRangePercent);
  74. cbExcelWithMis.Checked := ExcelWithMis;
  75. end;
  76. end;
  77. procedure TOptionForm.Save;
  78. begin
  79. with SupportManager.ConfigInfo do
  80. begin
  81. AutoSave := cbAutoSave.Checked;
  82. AutoSaveInterval := StrToIntDef(cbbSaveIntervall.Text, 15);
  83. OverRangeType := Self.OverRangeType;
  84. OverRangePercent := StrToIntDef(edtOverRangePercent.Text, 100);
  85. ExcelWithMis := cbExcelWithMis.Checked;
  86. end;
  87. end;
  88. procedure TOptionForm.cbAutoSaveClick(Sender: TObject);
  89. begin
  90. SetSaveIntervalEnable(cbAutoSave.Checked);
  91. end;
  92. procedure TOptionForm.SetSaveIntervalEnable(AEnable: Boolean);
  93. begin
  94. lblSaveInterval.Enabled := AEnable;
  95. cbbSaveIntervall.Enabled := AEnable;
  96. lblMinutes.Enabled := AEnable;
  97. end;
  98. function TOptionForm.GetOverRangeType: Integer;
  99. begin
  100. if rbLedger.Checked then
  101. Result := rbLedger.Tag
  102. else if rbDeal.Checked then
  103. Result := rbDeal.Tag
  104. else if rbBoth.Checked then
  105. Result := rbBoth.Tag;
  106. end;
  107. procedure TOptionForm.SetOverRangeType(const Value: Integer);
  108. begin
  109. rbLedger.Checked := rbLedger.Tag = Value;
  110. rbDeal.Checked := rbDeal.Tag = Value;
  111. rbBoth.Checked := rbBoth.Tag = Value;
  112. end;
  113. procedure TOptionForm.rbLedgerClick(Sender: TObject);
  114. begin
  115. TRadioButton(Sender).Checked := True;
  116. end;
  117. procedure TOptionForm.edtOverRangePercentKeyPress(Sender: TObject;
  118. var Key: Char);
  119. begin
  120. if not (Key in ['0'..'9', #8, #13]) then
  121. Key := #0;
  122. end;
  123. procedure TOptionForm.edtOverRangePercentExit(Sender: TObject);
  124. var
  125. fPer: Double;
  126. begin
  127. fPer := StrToIntDef(TEdit(Sender).text, 0);
  128. if (fPer < 50) then
  129. TEdit(Sender).text := '50'
  130. else if (fPer > 100) then
  131. TEdit(Sender).text := '100';
  132. end;
  133. procedure TOptionForm.edtOverRangePercentKeyDown(Sender: TObject;
  134. var Key: Word; Shift: TShiftState);
  135. var
  136. fPer: Double;
  137. begin
  138. if (Key = 13) then
  139. begin
  140. fPer := StrToIntDef(TEdit(Sender).text, 0);
  141. if (fPer < 50) then
  142. TEdit(Sender).text := '50'
  143. else if (fPer > 100) then
  144. TEdit(Sender).text := '100';
  145. end;
  146. end;
  147. end.