home *** CD-ROM | disk | FTP | other *** search
- { ----------------------------------------------------------------------- }
- { Source file: BANKTRN.PAS }
- { Application: Bank Manager }
- { Version : 1.0 }
- { Created : 08/19/91 }
- { Updates : }
- { }
- { Description: Maintain account transaction records. }
- { Notes : }
- { ----------------------------------------------------------------------- }
- Unit Banktrn;
-
- {$R BANKTRN.RES}
-
- interface
-
- uses
- Strings, WinTypes, WinProcs, WObjects, WinDOS;
-
- type
- AccRec =
- record
- AccType : array[0..12] of char;
- AccNum : array[0..20] of char;
- AccBal : real;
- AccBank : array[0..18] of char;
- AccCheck: integer;
- end;
-
- PTransRep = ^TTransRep;
- TTransRep =
- object( TDialog)
- CurrYr,
- CurrMo: integer;
-
- constructor Init( AParent: PWindowsObject; ATitle, AccN: PChar; Last: boolean);
- procedure SetupWindow; virtual;
-
- procedure Handle103( var Msg: TMessage); virtual id_First + 103;
- function GetBalance( AccN: PChar): real; virtual;
- function FillList: boolean; virtual;
- end;
-
- PTransfer = ^TTransfer;
- TTransfer =
- object( TDialog)
- RecN: integer;
-
- constructor Init( AParent: PWindowsObject; ATitle: PChar);
- procedure OK( var Msg: TMessage); virtual id_First + id_OK;
- function CanClose: boolean; virtual;
- procedure SetupWindow; virtual;
-
- procedure FillCombo( Item: integer; Except: PChar); virtual;
- function GetBalance( AccN: PChar): real; virtual;
- procedure UpdateBalance; virtual;
- procedure UpdateActivity; virtual;
- procedure Handle101( var Msg: TMessage); virtual id_First + 101;
- procedure Handle102( var Msg: TMessage); virtual id_First + 102;
- end;
-
- PTransact = ^TTransact;
- TTransact =
- object( TDialog)
- constructor Init( AParent: PWindowsObject; ATitle, AccN, AccT: PChar; M: boolean);
- procedure SetupWindow; virtual;
- function CanClose: boolean; virtual;
- procedure OK( var Msg: TMessage); virtual id_First + id_OK;
- procedure Cancel( var Msg: TMessage); virtual id_First + id_Cancel;
-
- procedure HandleTrans( var Msg: TMessage); virtual id_First + 103;
- procedure HandleDate( var Msg: TMessage); virtual id_First + 104;
- procedure HandleCheck( var Msg: TMessage); virtual id_First + 105;
- procedure HandleCredit( var Msg: TMessage); virtual id_First + 106;
- procedure HandleDebit( var Msg: TMessage); virtual id_First + 107;
- procedure HandleNote( var Msg: TMessage); virtual id_First + 108;
-
- procedure GetAccountBalance; virtual;
- procedure FillTransactCombo; virtual;
- procedure ClearFields; virtual;
- procedure UpdateActivity; virtual;
- procedure UpdateBalance; virtual;
- end;
-
- implementation
-
- const
- AccFile = 'BANKACC.DTA';
-
- const
- ButtonMonth: array[1..12] of string[9] = ( 'January', 'February', 'March', 'April',
- 'May', 'June', 'July', 'August', 'September',
- 'October', 'November', 'December');
- const
- Months: array[1..12] of string[3] = ( 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
- 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC');
-
- type
- TransRec =
- record
- TransType: array[0..31] of char;
- end;
-
- ActRec =
- record
- AccNum : array[0..20] of char;
- Trans : array[0..31] of char;
- Credit : real;
- Debit : real;
- Balance: real;
- Check : integer;
- Date : array[0..9] of char;
- Notes : array[0..66] of char;
- end;
-
- var
- Activity,
- GMulti : boolean;
- GAccNum: array[0..20] of Char;
- GAccT : array[0..12] of char;
- GAccBal: array[0..10] of Char;
- PStr : string[12];
- AccF : file of AccRec;
- GAccR : AccRec;
- ActF : file of ActRec;
- GActR : ActRec;
- GCheck : integer;
- GOldBal,
- GNewBal: real;
-
- { --------------------- }
- { TTransRep Methods: }
- { --------------------- }
-
- function TTransRep.GetBalance( AccN: PChar): real;
- begin
- assign( AccF, AccFile);
- reset( AccF);
- repeat
- read( AccF, GAccR);
- until ( FilePos( AccF) = FileSize( AccF)) or ( StrComp( GAccR.AccNum, AccN) = 0);
- if StrComp( GAccR.AccNum, AccN) = 0 then
- GetBalance := GAccR.AccBal
- else
- GetBalance := 0.0;
- close( AccF);
- end;
-
- constructor TTransRep.Init( AParent: PWindowsObject; ATitle, AccN: PChar; Last: boolean);
- begin
- TDialog.Init( AParent, ATitle);
- StrCopy( GAccNum, AccN);
- end;
-
- procedure TTransRep.SetupWindow;
- var
- Yr,Mo,Dy,DW: word;
- MStr : PChar;
- begin
- TDialog.SetupWindow;
- GetDate( Yr, Mo, Dy, DW);
- GetMem( MStr, 13);
- StrPCopy( MStr, ButtonMonth[ Mo]);
- SetDlgItemText( HWindow, 103, MStr);
- SetDlgItemText( HWindow, 101, GAccNum);
- str( GetBalance( GAccNum):0:2, PStr);
- StrPCopy( MStr, PStr);
- SetDlgItemText( HWindow, 102, MStr);
- CurrMo := Mo;
- CurrYr := Yr;
- FreeMem( MStr, 13);
- end;
-
- procedure TTransRep.Handle103( var Msg: TMessage);
- var
- MStr : PChar;
- begin
- if FillList then
- begin
- GetMem( MStr, 13);
- CurrMo := CurrMo - 1;
- StrPCopy( MStr, ButtonMonth[ CurrMo]);
- SetDlgItemText( HWindow, 103, MStr);
- FreeMem( MStr, 13);
- end;
- end;
-
- function TTransRep.FillList: boolean;
- var
- Tmp : file of ActRec;
- Mn : string[3];
- Yr : string[2];
- Mo,
- Err: integer;
- P,
- Line: PChar;
- begin
- FillList := TRUE;
- Mn := Months[ CurrMo];
- str( CurrYr, PStr);
- Yr := copy( PStr, 3, 2);
- assign( Tmp, Mn + Yr + '.DTA');
- {$I-}
- reset( Tmp);
- {$I+}
- if ioresult <> 0 then
- begin
- MessageBox( HWindow, 'No more transaction files', 'Transaction Reports',
- mb_IconStop or mb_OK);
- FillList := FALSE;
- exit;
- end
- else
- begin
- GetMem( P, 80);
- GetMem( Line, 80);
- SendDlgItemMsg( 104, lb_ResetContent, 0, 0);
- repeat
- read( Tmp, GActR);
- if StrComp( GActR.AccNum, GAccNum) = 0 then
- begin
- StrCopy( Line, GActR.Date);
- StrCat( Line, ' (');
- StrCat( Line, GActR.Trans);
- StrCat( Line, ') ');
- StrCat( Line, GActR.Notes);
- StrCat( Line, ' ');
- if GActR.Debit <> 0.0 then
- begin
- str( -GActR.Debit:0:2, PStr);
- StrPCopy( P, PStr);
- StrCat( Line, P);
- StrCat( Line, ' ');
- end;
- if GActR.Credit <> 0.0 then
- begin
- str( GActR.Credit:0:2, PStr);
- StrPCopy( P, PStr);
- StrCat( Line, P);
- StrCat( Line, ' ');
- end;
- Err := SendDlgItemMsg( 104, lb_AddString, 0, longint( Line));
- end;
- until System.FilePos( Tmp) = System.FileSize( Tmp);
- FreeMem( Line, 80);
- FreeMem( P, 80);
- end;
- close( Tmp);
- end;
-
- { --------------------- }
- { TTranfer Methods: }
- { --------------------- }
-
- procedure TTransfer.FillCombo( Item: integer; Except: PChar);
- var
- Temp: PChar;
- begin
- GetMem( Temp, 20);
- assign( AccF, AccFile);
- reset( AccF);
- SendDlgItemMsg( Item, cb_ResetContent, 0, 0);
- repeat
- read( AccF, GAccR);
- StrCopy( Temp, GAccR.AccNum);
- if StrComp( Temp, Except) <> 0 then
- SendDlgItemMsg( Item, cb_AddString, 0, longint( Temp));
- until FilePos( AccF) = FileSize( AccF);
- close( AccF);
- GetDlgItemText( HWindow, Item, Temp, 20);
- if StrLen( Temp) = 0 then
- SendDlgItemMsg( Item, cb_SetCurSel, 0, 0);
- FreeMem( Temp, 20);
- end;
-
- function TTransfer.GetBalance( AccN: PChar): real;
- begin
- assign( AccF, AccFile);
- reset( AccF);
- repeat
- read( AccF, GAccR);
- until ( FilePos( AccF) = FileSize( AccF)) or ( StrComp( GAccR.AccNum, AccN) = 0);
- if StrComp( GAccR.AccNum, AccN) = 0 then
- begin
- GetBalance := GAccR.AccBal;
- RecN := FilePos( AccF) - 1;
- end
- else
- begin
- GetBalance := 0.0;
- RecN := 0;
- end;
- close( AccF);
- end;
-
- procedure TTransfer.UpdateBalance;
- begin
- assign( AccF, AccFile);
- reset( AccF);
- System.Seek( AccF, RecN);
- read( AccF, GAccR);
- GAccR.AccBal := GActR.Balance;
- System.Seek( AccF, RecN);
- write( AccF, GAccR);
- close( AccF);
- end;
-
- procedure TTransfer.UpdateActivity;
- var
- Tmp : file of ActRec;
- Mn : string[3];
- Yr : string[2];
- Mo,
- Err: integer;
- begin
- PStr := StrPas( GActR.Date);
- val( copy( PStr, 1, 2), Mo, Err);
- Mn := Months[ Mo];
- Yr := copy( PStr, 7, 2);
- assign( Tmp, Mn + Yr + '.DTA');
- {$I-}
- reset( Tmp);
- {$I+}
- if ioresult <> 0 then rewrite( Tmp)
- else System.Seek( Tmp, FileSize( Tmp));
- write( Tmp, GActR);
- close( Tmp);
- end;
-
- function TTransfer.CanClose: boolean;
- var
- CC : boolean;
- Amnt: real;
- Err,
- FLen: integer;
- Temp: PChar;
- Date: array[0..9] of char;
- begin
- CC := TDialog.CanClose;
- if CC then
- begin
- GetMem( Temp, 10);
- FLen := GetDlgItemText( HWindow, 103, Date, 9);
- if FLen = 0 then
- begin
- MessageBox( HWindow, 'A transaction date is required in MM/DD/YY format',
- 'Missing field', mb_IconStop or mb_OK);
- FreeMem( Temp, 10);
- CanClose := FALSE;
- exit;
- end;
- FLen := GetDlgItemText( HWindow, 104, Temp, 10);
- if FLen = 0 then
- begin
- MessageBox( HWindow, 'A transaction amount is required in 1234.56 format',
- 'Missing field', mb_IconStop or mb_OK);
- FreeMem( Temp, 10);
- CanClose := FALSE;
- exit;
- end
- else
- begin
- PStr := StrPas( Temp);
- val( PStr, Amnt, Err);
- if Err <> 0 then
- begin
- MessageBox( HWindow, 'Invalid transaction amount',
- 'Invalid field', mb_IconStop or mb_OK);
- FreeMem( Temp, 10);
- CanClose := FALSE;
- exit;
- end;
- end;
- StrCopy( GActR.Date, Date);
- GActR.Balance := Amnt;
- FreeMem( Temp, 10);
- end;
- end;
-
- procedure TTransfer.OK( var Msg: TMessage);
- var
- FromAcc,
- ToAcc : PChar;
- Amnt : real;
- begin
- if CanClose then
- begin
- GetMem( FromAcc, 20);
- GetMem( ToAcc, 20);
- Amnt := GActR.Balance;
- GetDlgItemText( HWindow, 101, FromAcc, 20);
- GetDlgItemText( HWindow, 102, ToAcc, 20);
-
- StrCopy( GActR.Trans, 'Transfer');
- StrCopy( GActR.AccNum, FromAcc);
- GActR.Credit := 0.0;
- GActR.Debit := Amnt;
- GActR.Balance := GetBalance( FromAcc) - Amnt;
- StrCopy( GActR.Notes, 'To ');
- StrCat( GActR.Notes, ToAcc);
- UpdateActivity;
- UpdateBalance;
-
- StrCopy( GActR.AccNum, ToAcc);
- GActR.Credit := Amnt;
- GActR.Debit := 0.0;
- GActR.Balance := GetBalance( ToAcc) + Amnt;
- StrCopy( GActR.Notes, 'From ');
- StrCat( GActR.Notes, FromAcc);
- UpdateActivity;
- UpdateBalance;
-
- FreeMem( FromAcc, 20);
- FreeMem( ToAcc, 20);
-
- EndDialog( HWindow, id_OK);
- end;
- end;
-
- constructor TTransfer.Init( AParent: PWindowsObject; ATitle: PChar);
- begin
- TDialog.Init( AParent, ATitle);
- end;
-
- procedure TTransfer.SetupWindow;
- begin
- TDialog.SetupWindow;
- FillCombo( 101, '');
- FillCombo( 102, '');
- end;
-
- procedure TTransfer.Handle101( var Msg: TMessage);
- var
- AccN: PChar;
- begin
- if Msg.LParamHi = cbn_Killfocus then
- begin
- GetMem( AccN, 20);
- GetDlgItemText( HWindow, 101, AccN, 20);
- FillCombo( 102, AccN);
- FreeMem( AccN, 20);
- end;
- end;
-
- procedure TTransfer.Handle102( var Msg: TMessage);
- var
- AccN: PChar;
- begin
- if Msg.LParamHi = cbn_Killfocus then
- begin
- GetMem( AccN, 20);
- GetDlgItemText( HWindow, 102, AccN, 20);
- FillCombo( 101, AccN);
- FreeMem( AccN, 20);
- end;
- end;
-
- { --------------------- }
- { TTransact Methods: }
- { --------------------- }
-
- constructor TTransact.Init( AParent: PWindowsObject; ATitle, AccN, AccT: PChar; M: boolean);
- begin
- TDialog.Init( AParent, ATitle);
- StrCopy( GAccNum, AccN);
- StrCopy( GAccT, AccT);
- GMulti := M;
- end;
-
- procedure TTransact.SetupWindow;
- begin
- TDialog.SetupWindow;
-
- assign( ActF, 'BANKACT.DTA');
- rewrite( ActF);
- Activity := FALSE;
-
- GetAccountBalance;
- SetDlgItemText( HWindow, 101, GAccNum);
- SetDlgItemText( HWindow, 102, GAccBal);
- FillTransactCombo;
- end;
-
- function TTransact.CanClose: boolean;
- var
- FErr,
- CC : boolean;
- FLen: integer;
- TmpC: array[0..10] of char;
- begin
- CC := TDialog.CanClose;
- CanClose := CC;
- if CC then
- begin
- FErr := FALSE;
- FLen := GetDlgItemText( HWindow, 104, TmpC, 9);
- if FLen = 0 then
- begin
- MessageBox( HWindow, 'Each transaction must have a date',
- 'Missing field', mb_IConStop or mb_OK);
- FErr := TRUE;
- end;
- FLen := GetDlgItemText( HWindow, 106, TmpC, 10);
- if FLen = 0 then
- begin
- FLen := GetDlgItemText( HWindow, 107, TmpC, 10);
- if FLen = 0 then
- begin
- MessageBox( HWindow, 'Each transaction must have a credit or debit amount',
- 'Missing field', mb_IConStop or mb_OK);
- FErr := TRUE;
- end;
- end;
- if not FErr then CC := TRUE;
- end;
- CanClose := CC;
- end;
-
- procedure TTransact.OK( var Msg: TMessage);
- var
- CC : boolean;
- ActR: ActRec;
- TmpC: array[0..10] of Char;
- begin
- CC := CanClose;
- if CC then
- begin
- GOldBal := GNewBal;
-
- StrCopy( GActR.AccNum, GAccNum);
- GetDlgItemText( HWindow, 103, GActR.Trans, 31);
- GActR.Balance := GNewBal;
- if GetDlgItemText( HWindow, 105, TmpC, 6) > 0 then
- begin
- GActR.Check := GCheck;
- inc( GCheck);
- end
- else GActR.Check := 0;
- write( ActF, GActR);
- Activity := TRUE;
- end;
- if not GMulti then
- begin
- if CC then
- begin
- close( ActF);
- UpdateActivity;
- UpdateBalance;
- EndDialog( HWindow, id_OK);
- end;
- end
- else ClearFields;
- end;
-
- procedure TTransact.Cancel( var Msg: TMessage);
- begin
- if GMulti and Activity then
- begin
- close( ActF);
- if MessageBox( HWindow, 'There have been changes. Save them?',
- 'Transaction Entries', mb_IConQuestion or mb_YesNo) = id_Yes then
- begin
- UpdateActivity;
- UpdateBalance;
- end
- else erase( ActF);
- end
- else erase( ActF);
- EndDialog( HWindow, id_Cancel);
- end;
-
- procedure TTransact.GetAccountBalance;
- begin
- assign( AccF, 'BANKACC.DTA');
- reset( AccF);
- repeat
- read( AccF, GAccR);
- until ( StrComp( GAccR.AccNum, GAccNum) = 0);
- close( AccF);
- str( GAccR.AccBal:0:2, PStr);
- StrPCopy( GAccBal, PStr);
- GCheck := GAccR.AccCheck;
- GOldBal := GAccR.AccBal;
- end;
-
- procedure TTransact.UpdateActivity;
- const
- Months: array[1..12] of string[3] = ( 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
- 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC');
- var
- Tmp : file of ActRec;
- Mn : string[3];
- Yr : string[2];
- Mo,
- Err: integer;
- begin
- assign( ActF, 'BANKACT.DTA');
- reset( ActF);
- repeat
- read( ActF, GActR);
- PStr := StrPas( GActR.Date);
- val( copy( PStr, 1, 2), Mo, Err);
- Mn := Months[ Mo];
- Yr := copy( PStr, 7, 2);
- assign( Tmp, Mn + Yr + '.DTA');
- {$I-}
- reset( Tmp);
- {$I+}
- if ioresult <> 0 then rewrite( Tmp)
- else System.Seek( Tmp, FileSize( Tmp));
- write( Tmp, GActR);
- close( Tmp);
- until FilePos( ActF) = FileSize( ActF);
- close( ActF);
- erase( ActF);
- end;
-
- procedure TTransact.UpdateBalance;
- begin
- assign( AccF, 'BANKACC.DTA');
- reset( AccF);
- repeat
- read( AccF, GAccR);
- until ( StrComp( GAccR.AccNum, GAccNum) = 0);
- seek( AccF, FilePos( AccF) - 1);
- GAccR.AccBal := GNewBal;
- GAccR.AccCheck := GCheck;
- write( AccF, GAccR);
- close( AccF);
- end;
-
- procedure TTransact.FillTransactCombo;
- var
- TrnF : file of TransRec;
- TrnR : TransRec;
- Temp : PChar;
- MiscIx: integer;
- begin
- GetMem( Temp, 31);
- assign( TrnF, 'BANKTRN.DTA');
- {$I-}
- reset( TrnF);
- {$I+}
- if ioresult = 0 then
- begin
- repeat
- read( TrnF, TrnR);
- StrCopy( Temp, TrnR.TransType);
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- until FilePos( TrnF) = FileSize( TrnF);
- end
- else
- begin
- rewrite( TrnF);
- Temp := 'Gas';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
-
- Temp := 'Groceries';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
-
- Temp := 'Living expenses';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
-
- Temp := 'Loan';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
-
- Temp := 'Miscellaneous';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
-
- Temp := 'Utilities';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- StrCopy( TrnR.TransType, Temp);
- write( TrnF, TrnR);
- end;
- close( TrnF);
- if StrComp( GAccT, 'Loan') <> 0 then
- begin
- Temp := 'Miscellaneous';
- MiscIx := SendDlgItemMsg( 103, cb_FindString, 1, longint( Temp));
- SendDlgItemMsg( 103, cb_SetCurSel, MiscIx, 0);
- end
- else
- begin
- SendDlgItemMsg( 103, cb_ResetContent, 0, 0);
- Temp := 'Loan';
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- SendDlgItemMsg( 103, cb_SetCurSel, 0, 0);
- end;
- end;
-
- procedure TTransact.ClearFields;
- begin
- SetDlgItemText( HWindow, 104, PChar( 0));
- SetDlgItemText( HWindow, 105, PChar( 0));
- SetDlgItemText( HWindow, 106, PChar( 0));
- SetDlgItemText( HWindow, 107, PChar( 0));
- SetDlgItemText( HWindow, 108, PChar( 0));
- end;
-
- procedure TTransact.HandleTrans( var Msg: TMessage);
- var
- TrnF : file of TransRec;
- TrnR : TransRec;
- Trans: array[0..31] of char;
- WTransF,
- FLen : integer;
- Temp : PChar;
- begin
- if Msg.LParamHi = cbn_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 103, Trans, 31);
- if FLen > 0 then
- begin
- GetMem( Temp, 31);
- StrCopy( Temp, Trans);
- if SendDlgItemMsg( 103, cb_FindString, 1, longInt( Temp)) = cb_Err then
- begin
- assign( TrnF, 'BANKTRN.DTA');
- reset( TrnF);
- seek( TrnF, FileSize( TrnF));
- StrCopy( TrnR.TransType, Trans);
- write( TrnF, TrnR);
- close( TrnF);
- StrCopy( Temp, Trans);
- SendDlgItemMsg( 103, cb_AddString, 0, longint( Temp));
- end;
- FreeMem( Temp, 31);
- end;
- end;
- end;
-
- procedure TTransact.HandleDate( var Msg: TMessage);
- var
- Date: array[0..9] of char;
- FLen: integer;
- begin
- if Msg.LParamHi = en_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 104, Date, 9);
- if ( FLen > 0) and ( FLen <> 8) then
- MessageBox( HWindow, 'Dates should have the MM/DD/YY format, such as 05/31/90',
- 'Field format', mb_IconInformation or mb_OK)
- else if FLen = 8 then
- StrCopy( GActR.Date, Date);
- end
- else DefWndProc( Msg);
- end;
-
- procedure TTransact.HandleCheck( var Msg: TMessage);
- var
- Check : array[0..6] of char;
- CheckN,
- Err,
- FLen : integer;
- begin
- if Msg.LParamHi = en_SetFocus then
- begin
- FLen := GetDlgItemText( HWindow, 105, Check, 6);
- if FLen = 0 then
- begin
- str( GCheck, PStr);
- StrPCopy( Check, PStr);
- SetDlgItemText( HWindow, 105, Check);
- end;
- end
- else if Msg.LParamHi = en_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 105, Check, 6);
- if FLen <> 0 then
- begin
- val( Check, CheckN, Err);
- if Err <> 0 then
- MessageBox( HWindow, 'A numeric check number is expected, such as 1234',
- 'Field format', mb_IconInformation or mb_OK)
- else
- GCheck := CheckN;
- end;
- end
- else DefWndProc( Msg);
- end;
-
- procedure TTransact.HandleCredit( var Msg: TMessage);
- var
- Credit: array[0..10] of char;
- Amnt : real;
- Err,
- FLen : integer;
- begin
- if Msg.LParamHi = en_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 106, Credit, 10);
- if FLen > 0 then
- begin
- PStr := StrPas( Credit);
- val( PStr, Amnt, Err);
- if Err <> 0 then
- MessageBox( HWindow, 'The credit/deposit amount must be numeric, such as 100.95',
- 'Field format', mb_IconInformation or mb_OK)
- else
- begin
- GActR.Credit := Amnt;
- GActR.Debit := 0.0;
- GNewBal := GOldBal + Amnt;
- str( GNewBal:0:2, PStr);
- StrPCopy( GAccBal, PStr);
- SetDlgItemText( HWindow, 102, GAccBal);
- end;
- end;
- end
- else DefWndProc( Msg);
- end;
-
- procedure TTransact.HandleDebit( var Msg: TMessage);
- var
- Debit : array[0..10] of char;
- Amnt : real;
- Err,
- FLen : integer;
- begin
- if Msg.LParamHi = en_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 107, Debit, 10);
- if FLen > 0 then
- begin
- PStr := StrPas( Debit);
- val( PStr, Amnt, Err);
- if Err <> 0 then
- MessageBox( HWindow, 'The debit/withdraw amount must be numeric, such as 1500.95',
- 'Field format', mb_IconInformation or mb_OK)
- else
- begin
- GActR.Debit := Amnt;
- GActR.Credit := 0.0;
- GNewBal := GOldBal - Amnt;
- str( GNewBal:0:2, PStr);
- StrPCopy( GAccBal, PStr);
- SetDlgItemText( HWindow, 102, GAccBal);
- end;
- end;
- end
- else DefWndProc( Msg);
- end;
-
- procedure TTransact.HandleNote( var Msg: TMessage);
- var
- N : array[0..66] of char;
- FLen : integer;
- begin
- if Msg.LParamHi = en_KillFocus then
- begin
- FLen := GetDlgItemText( HWindow, 108, N, 66);
- if FLen > 0 then
- StrCopy( GActR.Notes, N);
- end;
- end;
-
- end.