home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l216 / 2.ddi / XMADDER.PRO < prev    next >
Encoding:
Text File  |  1987-03-23  |  2.1 KB  |  89 lines

  1. /*******************************************************************
  2.  
  3.      Turbo Prolog Toolbox
  4.      (C) Copyright 1987 Borland International.
  5.  
  6.         Demo of screen handler
  7.     Simple adding machine with memory facility
  8. *******************************************************************/
  9.  
  10. code=2000
  11.  
  12. include "tdoms.pro"
  13.  
  14. DOMAINS
  15.   FNAME=SYMBOL
  16.   TYPE = int(); str(); real()
  17.  
  18. DATABASE
  19.   /* Database declarations used in scrhnd */
  20.   insmode            /* Global insertmode */
  21.   actfield(FNAME)        /* Actual field */
  22.   screen(SYMBOL,DBASEDOM)    /* Saving different screens */
  23.   value(FNAME,STRING)        /* value of a field */
  24.   field(FNAME,TYPE,ROW,COL,LEN) /* Screen definition */
  25.   txtfield(ROW,COL,LEN,STRING)
  26.   windowsize(ROW,COL).
  27.   notopline
  28.  
  29.   /* Database declarations used in vscrhnd */
  30.   windowstart(ROW,COL)
  31.   mycursord(ROW,COL)
  32.  
  33.   /* Database declarations used in lineinp */
  34.   lineinpstate(STRING,COL)
  35.   lineinpflag
  36.  
  37. include "tpreds.pro"
  38. include "menu.pro"
  39. include "status.pro"
  40. include "lineinp.pro"
  41. include "scrhnd.pro"
  42.  
  43. GOAL
  44.     consult("xmadder.scr"),
  45.     createwindow(off),
  46.     scrhnd(off,_).
  47.  
  48. CLAUSES
  49. /*******************************************************************
  50.             Field action
  51. *******************************************************************/
  52.  
  53.   field_action("Total"):-
  54.     retract(value("Memory",_)),fail.
  55.  
  56.   field_action("Total"):-
  57.     field_value("Total",T),
  58.     assert(value("Memory",T)).
  59.   
  60. /*******************************************************************
  61.              Field_value
  62. *******************************************************************/
  63.  
  64.   field_value("Total",T):-
  65.     value("FirstNo",N1),
  66.     str_real(N1,Num1),
  67.     value("SecondNo",N2),
  68.     str_real(N2,Num2),!,
  69.     Tnum = Num1+Num2,
  70.     str_real(T,Tnum).
  71.  
  72.   field_value("Total",N1):-
  73.     value("FirstNo",N1),!.
  74.  
  75.   field_value("Total",N2):-
  76.     value("SecondNo",N2),!.
  77.  
  78.   field_value("Total","0"):-!.
  79.  
  80.   field_value(FNAME,VAL):-
  81.     value(FNAME,VAL),!.  
  82.  
  83. /*******************************************************************
  84.              noinput
  85. *******************************************************************/
  86.  
  87.   noinput("Memory").
  88.   noinput("Total").
  89.