| 1 | unit fOptionsNotes;
 | 
|---|
| 2 | 
 | 
|---|
| 3 | interface
 | 
|---|
| 4 | 
 | 
|---|
| 5 | uses
 | 
|---|
| 6 |   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 | 
|---|
| 7 |   StdCtrls, ExtCtrls, ORCtrls, ORFn, ComCtrls;
 | 
|---|
| 8 | 
 | 
|---|
| 9 | type
 | 
|---|
| 10 |   TfrmOptionsNotes = class(TForm)
 | 
|---|
| 11 |     lblAutoSave1: TLabel;
 | 
|---|
| 12 |     lblCosigner: TLabel;
 | 
|---|
| 13 |     txtAutoSave: TCaptionEdit;
 | 
|---|
| 14 |     spnAutoSave: TUpDown;
 | 
|---|
| 15 |     chkVerifyNote: TCheckBox;
 | 
|---|
| 16 |     chkAskSubject: TCheckBox;
 | 
|---|
| 17 |     cboCosigner: TORComboBox;
 | 
|---|
| 18 |     pnlBottom: TPanel;
 | 
|---|
| 19 |     bvlBottom: TBevel;
 | 
|---|
| 20 |     btnOK: TButton;
 | 
|---|
| 21 |     btnCancel: TButton;
 | 
|---|
| 22 |     lblAutoSave2: TLabel;
 | 
|---|
| 23 |     procedure FormShow(Sender: TObject);
 | 
|---|
| 24 |     procedure btnOKClick(Sender: TObject);
 | 
|---|
| 25 |     procedure txtAutoSaveChange(Sender: TObject);
 | 
|---|
| 26 |     procedure txtAutoSaveKeyPress(Sender: TObject; var Key: Char);
 | 
|---|
| 27 |     procedure txtAutoSaveExit(Sender: TObject);
 | 
|---|
| 28 |     procedure spnAutoSaveClick(Sender: TObject; Button: TUDBtnType);
 | 
|---|
| 29 |     procedure cboCosignerNeedData(Sender: TObject; const StartFrom: String;
 | 
|---|
| 30 |       Direction, InsertAt: Integer);
 | 
|---|
| 31 |     procedure cboCosignerExit(Sender: TObject);
 | 
|---|
| 32 |   private
 | 
|---|
| 33 |     { Private declarations }
 | 
|---|
| 34 |   public
 | 
|---|
| 35 |     { Public declarations }
 | 
|---|
| 36 |   end;
 | 
|---|
| 37 | 
 | 
|---|
| 38 | var
 | 
|---|
| 39 |   frmOptionsNotes: TfrmOptionsNotes;
 | 
|---|
| 40 | 
 | 
|---|
| 41 | procedure DialogOptionsNotes(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
 | 
|---|
| 42 | 
 | 
|---|
| 43 | implementation
 | 
|---|
| 44 | 
 | 
|---|
| 45 | {$R *.DFM}
 | 
|---|
| 46 | 
 | 
|---|
| 47 | uses
 | 
|---|
| 48 |   rOptions, uOptions, rCore, rTIU, rDCSumm;
 | 
|---|
| 49 | 
 | 
|---|
| 50 | procedure DialogOptionsNotes(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
 | 
|---|
| 51 | // create the form and make it modal, return an action
 | 
|---|
| 52 | var
 | 
|---|
| 53 |   frmOptionsNotes: TfrmOptionsNotes;
 | 
|---|
| 54 | begin
 | 
|---|
| 55 |   frmOptionsNotes := TfrmOptionsNotes.Create(Application);
 | 
|---|
| 56 |   actiontype := 0;
 | 
|---|
| 57 |   try
 | 
|---|
| 58 |     with frmOptionsNotes do
 | 
|---|
| 59 |     begin
 | 
|---|
| 60 |       if (topvalue < 0) or (leftvalue < 0) then
 | 
|---|
| 61 |         Position := poScreenCenter
 | 
|---|
| 62 |       else
 | 
|---|
| 63 |       begin
 | 
|---|
| 64 |         Position := poDesigned;
 | 
|---|
| 65 |         Top := topvalue;
 | 
|---|
| 66 |         Left := leftvalue;
 | 
|---|
| 67 |       end;
 | 
|---|
| 68 |       ResizeAnchoredFormToFont(frmOptionsNotes);
 | 
|---|
| 69 |       ShowModal;
 | 
|---|
| 70 |       actiontype := btnOK.Tag;
 | 
|---|
| 71 |     end;
 | 
|---|
| 72 |   finally
 | 
|---|
| 73 |     frmOptionsNotes.Release;
 | 
|---|
| 74 |   end;
 | 
|---|
| 75 | end;
 | 
|---|
| 76 | 
 | 
|---|
| 77 | procedure TfrmOptionsNotes.FormShow(Sender: TObject);
 | 
|---|
| 78 | // displays defaults
 | 
|---|
| 79 | // opening tab^use last tab^autosave seconds^verify note title
 | 
|---|
| 80 | var
 | 
|---|
| 81 |   autosave, verify: integer;
 | 
|---|
| 82 |   cosigner: Int64;
 | 
|---|
| 83 |   values, cosignername: string;
 | 
|---|
| 84 | begin
 | 
|---|
| 85 |   values := rpcGetOther;
 | 
|---|
| 86 |   autosave := strtointdef(Piece(values, '^', 3), -1);
 | 
|---|
| 87 |   verify := strtointdef(Piece(values, '^', 4), 0);
 | 
|---|
| 88 |   chkVerifyNote.Checked := verify = 1;
 | 
|---|
| 89 |   chkVerifyNote.Tag := verify;
 | 
|---|
| 90 |   spnAutoSave.Position := autosave;
 | 
|---|
| 91 |   spnAutoSave.Tag := autosave;
 | 
|---|
| 92 | 
 | 
|---|
| 93 |   values := rpcGetDefaultCosigner;
 | 
|---|
| 94 |   cosigner := strtoint64def(Piece(values, '^', 1), 0);
 | 
|---|
| 95 |   cosignername := Piece(values, '^', 2);
 | 
|---|
| 96 |   cboCosigner.Items.Add('0^<none>');
 | 
|---|
| 97 |   cboCosigner.InitLongList(cosignername);
 | 
|---|
| 98 |   cboCosigner.SelectByIEN(cosigner);
 | 
|---|
| 99 |   cboCosigner.Tag := cosigner;
 | 
|---|
| 100 |   chkAskSubject.Checked := rpcGetSubject;
 | 
|---|
| 101 |   if chkAskSubject.Checked then chkAskSubject.Tag := 1;
 | 
|---|
| 102 | end;
 | 
|---|
| 103 | 
 | 
|---|
| 104 | procedure TfrmOptionsNotes.btnOKClick(Sender: TObject);
 | 
|---|
| 105 | // only saves values if they have been changed
 | 
|---|
| 106 | // opening tab^use last tab^autosave seconds^verify note title
 | 
|---|
| 107 | var
 | 
|---|
| 108 |   values: string;
 | 
|---|
| 109 | begin
 | 
|---|
| 110 |   values := '';
 | 
|---|
| 111 |   values := values + '^';
 | 
|---|
| 112 |   values := values + '^';
 | 
|---|
| 113 |   if spnAutoSave.Position <> spnAutoSave.Tag then
 | 
|---|
| 114 |     values := values + inttostr(spnAutoSave.Position);
 | 
|---|
| 115 |   values := values + '^';
 | 
|---|
| 116 |   if chkVerifyNote.Checked then
 | 
|---|
| 117 |     if chkVerifyNote.Tag <> 1 then
 | 
|---|
| 118 |       values := values + '1';
 | 
|---|
| 119 |   if not chkVerifyNote.Checked then
 | 
|---|
| 120 |     if chkVerifyNote.Tag <> 0 then
 | 
|---|
| 121 |       values := values + '0';
 | 
|---|
| 122 |   rpcSetOther(values);
 | 
|---|
| 123 |   with chkAskSubject do
 | 
|---|
| 124 |   if (Checked and (Tag = 0)) or (not Checked and (Tag = 1)) then
 | 
|---|
| 125 |     rpcSetSubject(Checked);
 | 
|---|
| 126 |   with cboCosigner do
 | 
|---|
| 127 |     if Tag <> ItemIEN then
 | 
|---|
| 128 |       rpcSetDefaultCosigner(ItemIEN);
 | 
|---|
| 129 |   ResetTIUPreferences;
 | 
|---|
| 130 |   ResetDCSummPreferences;
 | 
|---|
| 131 | end;
 | 
|---|
| 132 | 
 | 
|---|
| 133 | procedure TfrmOptionsNotes.txtAutoSaveChange(Sender: TObject);
 | 
|---|
| 134 | var
 | 
|---|
| 135 |   maxvalue: integer;
 | 
|---|
| 136 | begin
 | 
|---|
| 137 |   maxvalue := spnAutoSave.Max;
 | 
|---|
| 138 |   with txtAutoSave do
 | 
|---|
| 139 |   begin
 | 
|---|
| 140 |     if strtointdef(Text, maxvalue) > maxvalue then
 | 
|---|
| 141 |     begin
 | 
|---|
| 142 |       beep;
 | 
|---|
| 143 |       InfoBox('Number must be < ' + inttostr(maxvalue), 'Warning', MB_OK or MB_ICONWARNING);
 | 
|---|
| 144 |       if strtointdef(Text, 0) > maxvalue then
 | 
|---|
| 145 |         Text := inttostr(maxvalue);
 | 
|---|
| 146 |     end;
 | 
|---|
| 147 |   end;
 | 
|---|
| 148 |   spnAutoSaveClick(self, btNext);
 | 
|---|
| 149 | end;
 | 
|---|
| 150 | 
 | 
|---|
| 151 | procedure TfrmOptionsNotes.txtAutoSaveKeyPress(Sender: TObject;
 | 
|---|
| 152 |   var Key: Char);
 | 
|---|
| 153 | begin
 | 
|---|
| 154 |   if Key = #13 then
 | 
|---|
| 155 |   begin
 | 
|---|
| 156 |     Perform(WM_NextDlgCtl, 0, 0);
 | 
|---|
| 157 |     exit;
 | 
|---|
| 158 |   end;
 | 
|---|
| 159 |   if not (Key in ['0'..'9', #8]) then
 | 
|---|
| 160 |   begin
 | 
|---|
| 161 |     Key := #0;
 | 
|---|
| 162 |     beep;
 | 
|---|
| 163 |   end;  
 | 
|---|
| 164 | end;
 | 
|---|
| 165 | 
 | 
|---|
| 166 | procedure TfrmOptionsNotes.txtAutoSaveExit(Sender: TObject);
 | 
|---|
| 167 | begin
 | 
|---|
| 168 |   with txtAutoSave do
 | 
|---|
| 169 |   begin
 | 
|---|
| 170 |     if Text = '' then
 | 
|---|
| 171 |     begin
 | 
|---|
| 172 |       Text := '0';
 | 
|---|
| 173 |       spnAutoSaveClick(self, btNext);
 | 
|---|
| 174 |     end
 | 
|---|
| 175 |     else if (Copy(Text, 1, 1) = '0') and (length(Text) > 1) then
 | 
|---|
| 176 |     begin
 | 
|---|
| 177 |       Text := inttostr(strtointdef(Text, 0));
 | 
|---|
| 178 |       spnAutoSaveClick(self, btNext);
 | 
|---|
| 179 |     end;
 | 
|---|
| 180 |   end;
 | 
|---|
| 181 | end;
 | 
|---|
| 182 | 
 | 
|---|
| 183 | procedure TfrmOptionsNotes.spnAutoSaveClick(Sender: TObject;
 | 
|---|
| 184 |   Button: TUDBtnType);
 | 
|---|
| 185 | begin
 | 
|---|
| 186 |   txtAutoSave.SetFocus;
 | 
|---|
| 187 |   txtAutoSave.Tag := strtointdef(txtAutoSave.Text, 0);
 | 
|---|
| 188 | end;
 | 
|---|
| 189 | 
 | 
|---|
| 190 | procedure TfrmOptionsNotes.cboCosignerNeedData(Sender: TObject;
 | 
|---|
| 191 |   const StartFrom: String; Direction, InsertAt: Integer);
 | 
|---|
| 192 | begin
 | 
|---|
| 193 |   cboCosigner.ForDataUse(rpcGetCosigners(StartFrom, Direction));
 | 
|---|
| 194 | end;
 | 
|---|
| 195 | 
 | 
|---|
| 196 | procedure TfrmOptionsNotes.cboCosignerExit(Sender: TObject);
 | 
|---|
| 197 | begin
 | 
|---|
| 198 |   with cboCosigner do
 | 
|---|
| 199 |   if (Text = '') or (ItemIndex = -1) then
 | 
|---|
| 200 |   begin
 | 
|---|
| 201 |     ItemIndex := 0;
 | 
|---|
| 202 |     Text := DisplayText[0];
 | 
|---|
| 203 |   end;
 | 
|---|
| 204 | end;
 | 
|---|
| 205 | 
 | 
|---|
| 206 | end.
 | 
|---|