home *** CD-ROM | disk | FTP | other *** search
- REM CurCon - A Currency Convertor
- REM Liam Relihan, 1994
- REM relihanl@ul.ie
- REM Freeware.
- REM Version 1.0
-
- app CurCon
- type 1
- icon "\opd\curcon.pic"
- enda
-
- proc main:
- GLOBAL inproc$(100),mainid%
- LOCAL curkey%
-
- gborder $204
-
- if EXIST ("\dat\currdb.dat")
- giprint "Opening currency database"
- open "\dat\currdb.dat",A,fr$,to$,ra
- dispcc:
- else
- giprint "Creating currency database"
- create "\dat\currdb.dat",A,fr$,to$,ra
- dispcc:
- endif
- do
- curkey% = kget%:
- if curkey% = 258
- next
- if EOF :first :endif
- dispcc:
- elseif curkey% = 259
- if POS=1
- last
- else
- back
- endif
- dispcc:
- elseif curkey%=13
- doconv:
- endif
- until 3 < 3
- endp
-
- proc dispcc:
- if count=0
- gstyle 1
- gat 190,15
- gprintb "0/0",45,1,3,3
- gstyle 9
- gat 1,40
- gprintb "No Ratios",236,3,5,5
- gstyle 1
- gat 1,65
- gprintb "Use "+chr$(2)+"N to add ratios.",236,3,5,5
- else
- gstyle 1
- gat 190,15
- gprintb gen$(pos,3)+"/"+gen$(count,3),45,1,3,3
- gstyle 9
- gat 1,40
- gprintb A.fr$+"/"+A.to$+" ("+gen$(A.ra,10)+")",236,3,5,5
- gstyle 1
- gat 1,65
- gprintb "Use "+chr$(17)+" and "+chr$(16)+" to select ratio",236,3,5,5
- endif
- endp
-
- proc doconv:
- LOCAL cnvstr$(128)
- LOCAL amt
- LOCAL d%,abc$(10),rstr$(20)
-
- dinit "Conversion"
- dtext "", A.fr$+" "+A.to$,$102
- dchoice d%,abc$,"->,<-"
- dfloat amt,"Amount",0,100000
- if dialog
- dinit "Result"
- if d%=1
- rstr$=fix$(amt*A.ra,2,10)
- dtext A.to$,rstr$
- else
- rstr$=fix$(amt/A.ra,2,10)
- dtext A.fr$,rstr$
- endif
- dialog
- endif
- endp
-
- proc procc:
- LOCAL newr
-
- if count=0
- giprint "No Ratio to Modify"
- else
- dinit "Change Ratio"
- dtext "", A.fr$+"/"+A.to$
- dfloat newr,"New Ratio",0,100000
- if dialog
- A.ra=newr
- update
- dispcc:
- giprint "Entry modified"
- endif
- endif
- endp
-
- proc procd:
- if count=0
- giprint "No Ratio to Delete"
- else
- dinit "Delete Current Ratio"
- dtext "", "Are You Sure ?",$202
- dbuttons "Yes",%Y,"No",%N
- if dialog=%y
- erase
- if EOF :first :endif
- dispcc:
- giprint "Entry deleted"
- endif
- endif
- endp
-
- proc proca:
- dinit
- dtext "","CurCon",$102
- dtext ""," Version 1.0",$102
- dtext "","Liam Relihan, 1994",$102
- dtext "","relihanl@ul.ie",$102
- dtext "","Freeware",$102
- dialog
- endp
-
- proc procn:
- LOCAL currdb$(128)
- LOCAL fr$(128),to$(128),ra
-
- dinit "New Ratio"
- dedit fr$,"From",3
- dedit to$,"To",3
- dfloat ra,"Ratio",0,10000
- if dialog
- A.fr$=fr$
- A.to$=to$
- A.ra=ra
- append
- last
- dispcc:
- giprint "Entry Added"
- endif
- endp
-
- proc procx:
- giprint "Shutting down..."
- close
- stop
- endp
-
- proc kget%:
- local k%,h$(9),a$(5)
-
- h$="NCDXA"
- while 1
- k%=GET
- if k%=$122
- minit
- mcard "Currency","New Ratio",%N,"Delete Ratio",%D,"Change Ratio",%C
- mcard "Special","Exit",%X
- mcard "Help","About",%A
- k%=menu
- if k% and intf(loc(h$,chr$(k%)))
- a$="proc"+chr$(k%)
- @(a$):
- endif
- elseif k% and $200
- k%=(k%-$200) and $FFDF
- k%=loc(h$,chr$(k%))
- if k%
- a$="proc"+mid$(h$,k%,1)
- @(a$):
- endif
- else
- return k%
- endif
- endwh
- endp
-
-