home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST900.PRG < prev    next >
Encoding:
Text File  |  1989-10-02  |  8.2 KB  |  295 lines

  1. ********************
  2.  
  3. PROCEDURE Inhelp
  4.  
  5.    PARAMETERS phelp, lhelp, vhelp
  6.  
  7.    IF PCOUNT() = 1
  8.    ELSE
  9.       IF TYPE(vhelp) = "A"   && Is the variable of ARRAY type?
  10.          vhelp = vhelp + TRANSFORM(ROW(),"99") + ;
  11.                          TRANSFORM(COL(), "99")
  12.       ENDIF
  13.    ENDIF
  14.  
  15.    scrcursor = IF( TYPE("scrcursor") = "U", .T., scrcursor)
  16.    scrhname  = IF( TYPE("scrhname") != "C", "INHELP", scrhname)
  17.    scrprog   = IF( TYPE("scrprog")   = "U", "C:", scrprog)
  18.  
  19.    in_help     = ""
  20.    drawscr     = ""
  21.    in_help     = SPACE(4000)
  22.    drawscr     = SPACE(4000)
  23.    _hrow       = ROW()
  24.    _hcol       = COL()
  25.    help_color  = SETCOLOR()
  26.    return_to   = SELECT()
  27.    _tempscr    = ""
  28.    _tempscr    = SAVESCREEN(0,0,24,79)
  29.    scrframe    = CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
  30.                  CHR(188) + CHR(205) + CHR(200) + CHR(186) + ;
  31.                  CHR(32)
  32.  
  33.    Setkeyoff()
  34.  
  35.    SETCOLOR(IF( ISCOLOR(), "7/1,0/7,N,N,0/7", ;
  36.                 "7/0,0/7,N,N,0/7" ))
  37.    SET SCOREBOARD OFF
  38.    SET FUNCTION 10 TO CHR(23)
  39.  
  40.    IF !FILE(scrprog + "\" + scrhname + ".DBF")   && No Help File
  41.       IF Makehelp(1)      && Create One with message # 1
  42.          Dohelp()         && Do it NOW!
  43.          SELECT (return_to)
  44.       ELSE                && Don't create and abort
  45.          RELEASE in_help, drawscr, _tempscr
  46.          SET CURSOR (scrcursor)
  47.          SETCOLOR(help_color)
  48.          Setkeyon()
  49.          RETURN
  50.       ENDIF
  51.    ENDIF
  52.    SELECT 0
  53.    USE (scrprog + "\" + scrhname) INDEX (scrprog + "\" + scrhname) ALIAS Help
  54.    IF PCOUNT() <> 1
  55.       IF TYPE("help_level") = "N"
  56.          search = SUBSTR(phelp,1,10) + SUBSTR(vhelp,1,10) + TRANSFORM(help_level, "9999")
  57.       ELSE
  58.          search = SUBSTR(phelp,1,10) + SUBSTR(vhelp,1,10) + TRANSFORM(lhelp, "9999")
  59.       ENDIF
  60.    ELSE
  61.       search = phelp
  62.    ENDIF
  63.    SEEK search
  64.    IF FOUND()
  65.       Foundhelp()
  66.    ELSE
  67.       IF !Makehelp(2)
  68.          RELEASE in_help, drawscr, _tempscr
  69.          SET CURSOR (scrcursor)
  70.          SETCOLOR (help_color)
  71.          RETURN
  72.       ENDIF
  73.       APPEND BLANK
  74.       IF TYPE("help_level") = "N"
  75.          REPLACE Help->lookit WITH SUBSTR(phelp,1,10) + SUBSTR(vhelp,1,10) + TRANSFORM(help_level,"9999")
  76.       ELSE
  77.          REPLACE Help->lookit WITH SUBSTR(phelp,1,10) + SUBSTR(vhelp,1,10) + TRANSFORM(lhelp,"9999")
  78.       ENDIF
  79.  
  80.       @ 00,10,03,70 BOX scrframe
  81.       @ 01,15 SAY "Would you like to DUMP the background screen to disk"
  82.       @ 02,29 SAY "for your future use? "
  83.       IF Prompt()
  84.          REPLACE Help->prgscr WITH "HLP" + TRIM(TRANSFORM(RECNO(), "@B99999")) + ".SCR"
  85.          SAVE ALL LIKE _tempscr TO ("HLP" + TRIM(TRANSFORM(RECNO(), "@B99999")) + ".SCR")
  86.       ENDIF
  87.       Drawitnow()
  88.       Typeitnow()
  89.    ENDIF
  90.    RESTSCREEN(0,0,24,79, _tempscr)
  91.    USE
  92.    SELECT (return_to)
  93.    @ _hrow, _hcol SAY ""
  94.    RELEASE in_help, drawscr, _tempscr
  95.    SET CURSOR (scrcursor)
  96.    SETCOLOR(help_color)
  97.    Setkeyon()
  98.  
  99. ******************
  100.  
  101. FUNCTION Makehelp
  102.  
  103.    PARAMETERS _whichmess
  104.  
  105.    @ 00,10,03,70 BOX scrframe
  106.  
  107.    IF _whichmess = 1
  108.       @ 01,12 SAY "There is no HELP file available.  " + ;
  109.                   "Would you like a help "
  110.       @ 02,27 SAY "file to be generated? "
  111.    ELSEIF _whichmess = 2
  112.        @ 01,15 SAY "There is no HELP for this section.  " + ;
  113.                    "Would you like to"
  114.        @ 02,24 SAY "create a HELP screen now? "
  115.    ENDIF
  116.    IF !Prompt()
  117.       RESTSCREEN(0,0,24,79, _tempscr)
  118.       SELECT (return_to)
  119.       SETCOLOR(help_color)
  120.       @ _hrow, _hcol SAY ""
  121.       KEYBOARD ""
  122.       Setkeyon()
  123.       RETURN(.F.)
  124.    ENDIF
  125.    RETURN(.T.)
  126.  
  127. ********************
  128.  
  129. PROCEDURE Drawitnow
  130.  
  131.    _dcolor = SETCOLOR()
  132.  
  133.    @ 00,10,03,70 BOX scrframe
  134.    instring = Putframe(2,5)
  135.  
  136.    REPLACE Help->top WITH VAL(Parsing(@instring)), Help->left WITH VAL(Parsing(@instring))
  137.    REPLACE Help->bottom WITH VAL(Parsing(@instring)), Help->right WITH VAL(Parsing(@instring))
  138.    
  139.    SETCOLOR(_dcolor)
  140.  
  141. ********************
  142.  
  143. PROCEDURE Typeitnow
  144.  
  145.    @ 00,05,02,75 BOX scrframe
  146.  
  147.    Center_it( 1, "Enter HELP text.  ESC to Abandon or F10 to Save")
  148.  
  149.    Windowpush(Help->top, Help->left, Help->bottom, Help->right)
  150.  
  151.    DO WHILE .T.
  152.       IF DELETED()
  153.          @ Help->top, Help->left+2 SAY "< Deleted >"
  154.       ENDIF
  155.       REPLACE Help->helpscr WITH MEMOEDIT(Help->helpscr, ;
  156.               Help->top+1, Help->left+1, Help->bottom-1, ;
  157.               Help->right-1,.T.)
  158.       MEMOEDIT(Help->helpscr, Help->top+1, Help->left+1,;
  159.                Help->bottom-1,Help->right-1,.F.,.F.)
  160.       @ Help->bottom, Help->left+1 SAY " Correct? "
  161.       IF !Prompt()
  162.          LOOP
  163.       ENDIF
  164.       EXIT
  165.    ENDDO
  166.    Helpcolor()
  167.    Windowpop()
  168.  
  169. *******************
  170.  
  171. PROCEDURE Helpcolor
  172.  
  173.    _helpstr = "Do you want to change the color?? "
  174.    MEMOEDIT(_helpstr, Help->top + 1, Help->left + 1, Help->bottom-1,Help->right-1,.F.,.F.)
  175.  
  176.    * Replace the bottom frame of the window!
  177.  
  178.    @ Help->bottom, Help->left+1 SAY REPLICATE(The_char(Help->top, Help->left+1), ;
  179.                Help->right - Help->left - 1)
  180.    @ Help->bottom-1, Help->left + 1 SAY ""
  181.    
  182.    IF Prompt()
  183.       _holdcolor = Set_color(Attribute(Help->top, ;
  184.                              Help->left))
  185.       _startcolr = Attribute(Help->top, Help->left)
  186.       _retcolor  = _startcolr
  187.       SET CURSOR OFF
  188.       @ 00,00,02,79 BOX scrframe
  189.       @ 01,03 SAY " + to increment / - to decrement / " + ;
  190.                   "ESC to Quit / TAB for Original Color"
  191.       DO WHILE .T.
  192.          _dokey = INKEY(0)
  193.          IF     CHR(_dokey) = "+"
  194.             _startcolr = IF(_startcolr = 127, 1, ;
  195.                             _startcolr + 1)
  196.  
  197.          ELSEIF CHR(_dokey) = "-"
  198.             _startcolr = IF(_startcolr = 1, 127, ;
  199.                             _startcolr - 1)
  200.  
  201.          ELSEIF _dokey = 9
  202.             _startcolr = _retcolor
  203.  
  204.          ELSEIF _dokey = 27
  205.             EXIT
  206.          ELSE
  207.             LOOP
  208.          ENDIF
  209.          RESTSCREEN(Help->top, Help->left-1, Help->bottom, ;
  210.             Help->right+1, Dulling(SAVESCREEN(Help->top, ;
  211.             Help->left-1, Help->bottom, Help->right+1), ;
  212.             _startcolr) )
  213.       ENDDO
  214.    ENDIF
  215.    REPLACE Help->helpcolor WITH Set_color(Attribute(Help->top, Help->left))
  216.  
  217. *******************
  218.  
  219. PROCEDURE Foundhelp
  220.  
  221.    _fcolor = SETCOLOR()
  222.  
  223.    IF !EMPTY(Help->helpcolor)
  224.       SETCOLOR(Help->helpcolor)
  225.    ENDIF
  226.  
  227.    Windowpush(Help->top, Help->left, Help->bottom, Help->right)
  228.  
  229.    IF DELETED()
  230.       @ Help->top, Help->left+2 SAY "< Deleted >"
  231.    ENDIF
  232.    SET CURSOR ON
  233.    @ Help->bottom, Help->left+1 SAY "< ESC to Quit >"
  234.    MEMOEDIT(Help->helpscr, Help->top + 1, Help->left+1, Help->bottom-1, ;
  235.             Help->right-1,.F., "SCRONLY2()")
  236.    Windowpop()
  237.  
  238.    SETCOLOR(_fcolor)
  239.  
  240. ********************
  241.  
  242. FUNCTION Scronly2
  243.  
  244.    PARAMETERS p1, p2, p3
  245.  
  246.    wh = LASTKEY()
  247.    IF wh = 27
  248.       KEYBOARD CHR(27)
  249.       RETURN(0)
  250.    ELSEIF wh = 5 .OR. wh = 24 .OR. wh = 4 .OR. wh = 19 
  251.       RETURN(0)
  252.    ELSE
  253.       RETURN(32)
  254.    ENDIF
  255.  
  256. ********************
  257.  
  258. PROCEDURE Dohelp
  259.  
  260.    _backto = SELECT()
  261.    SELECT 0
  262.    CREATE Temp
  263.    USE Temp
  264.  
  265.    Ap_it("LOOKIT",   "C", 24 )    && The search string
  266.    Ap_it("TOP",      "N", 2  )    && Row coordinate
  267.    Ap_it("LEFT",     "N", 2  )    && Col coordinate
  268.    Ap_it("BOTTOM",   "N", 2  )    && Row coordinate
  269.    Ap_it("RIGHT",    "N", 2  )    && Col coordinate
  270.    Ap_it("TOPIC",    "C", 20 )    && Topic this falls in
  271.    Ap_it("COUNTER",  "N", 10, 2 ) && Generic counter for text
  272.    Ap_it("HELPSCR",  "M", 10 )    && Help Text
  273.    Ap_it("HELPCOLOR","C", 15 )    && THe color of the help screen
  274.    Ap_it("PRGSCR",   "C", 12 )    && Text file with screen
  275.    Ap_it("MORE_TEXT", "M", 10)    && Additional Text : for help text memos, it is the 'PRE_TEXT' field
  276.    Ap_it("POST_TEXT", "M", 10)    && Additional text : for help text memos, it is the 'POST_TEXT' field
  277.  
  278.    USE
  279.    CREATE (scrprog + "\" + scrhname) FROM Temp
  280.    ERASE Temp.dbf
  281.    USE (scrprog + "\" + scrhname)
  282.    INDEX ON lookit TO (scrprog + "\" + scrhname)
  283.    USE
  284.    SELECT (_backto)
  285.  
  286. ********************
  287.  
  288. PROCEDURE Temphelp
  289.  
  290.    old_color = SETCOLOR()
  291.    SET COLOR TO W+*
  292.    @ temp_top, temp_left, temp_bot, temp_right BOX SUBSTR(scrframe,1,8)
  293.    SETCOLOR(old_color)
  294.  
  295.