home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a085 / 1.ddi / EXP8_7.PRG < prev    next >
Encoding:
Text File  |  1994-01-10  |  4.3 KB  |  174 lines

  1. *⌐░⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐┤
  2. *⌐ª      Program: EXP8_7.PRG                                           ⌐ª
  3. *⌐ª     Function: ╩╣╙├╬▐╧▀░┤┼ñ Radio Buttons ╡─╖╢└²                    ⌐ª
  4. *⌐╕⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐╝
  5. SET TALK OFF
  6.  
  7. PUSH KEY CLEAR
  8. ON KEY LABEL F2 DO moving
  9. DEFINE WINDOW editwin FROM 2,2 TO 22,77 ;
  10.        TITLE " [F2]: ╝╟┬╝╦┘▓Θ▓╦╡Ñ" ;
  11.        DOUBLE;
  12.        GROW ;
  13.        FLOAT ;
  14.        ZOOM ;
  15.        SHADOW;
  16.        COLOR SCHEME 8
  17. IF EMPTY(DBF())
  18.    DIMENSION dataarray(128)
  19.    dataarray(1) = SYS(2000,"*.DBF")
  20.    FOR i=2 TO 128
  21.       dataarray(i) = SYS(2000,"*.DBF",1)
  22.       IF LEN(ALLTRIM(dataarray(i))) = 0
  23.          EXIT
  24.       ENDIF
  25.    ENDFOR
  26.    STORE 1 TO choice
  27.    @ 5,25 MENU dataarray,i,10 ;
  28.           TITLE "<<╟δ╤í╚í╩²╛▌┐Γ>>" ;
  29.           SHADOW;
  30.           COLOR SCHEME 5
  31.    READ MENU TO choice
  32.    IF choice = 0   && ░┤ [ESC] ╝ⁿ
  33.       POP KEY
  34.       RETURN
  35.    ELSE
  36.       USE (dataarray(choice))
  37.    ENDIF
  38. ENDIF
  39. CHANGE NOAPPEND NODELETE NOEDIT WINDOW editwin
  40. CLEAR WINDOWS
  41. POP KEY
  42.  
  43. PROCEDURE moving
  44. PRIVATE FILE,lastobj,enter,TAB,shifttab,up,down,LEFT,RIGHT
  45. PRIVATE winname
  46. winname = SYS(2015)
  47. DEFINE WINDOW (winname) FROM 9, 17 TO 19,61 ;
  48.        FLOAT NOCLOSE SHADOW
  49.  
  50. * ╢¿╥σ╕≈ LASTKEY() ╓╡╡─▒Σ┴┐, ╠ß╕▀│╠╨≥╡─╥╫╢┴╨╘
  51. enter    = 13
  52. TAB      = 9
  53. shifttab = 15
  54. up       = 5
  55. down     = 24
  56. RIGHT    = 4
  57. LEFT     = 19
  58. lastobj  = 1
  59.  
  60. ACTIVATE WINDOW (winname)
  61. @ 1,3  GET radio PICTURE '@*RVN ╩╫╝╟┬╝;─⌐╝╟┬╝;╝╟┬╝║┼;╠°  ╫¬' ;
  62.        SIZE 1,10,1 DEFAULT 1 WHEN radwhen() VALID radvalid()
  63. @ 5,15 GET recordnum SIZE 1,8 DEFAULT 0 ;
  64.        FUNCTION 'Z' WHEN recwhen() VALID recvalid() DISABLE
  65. @ 7,15 GET skipnum SIZE 1,8 DEFAULT 0 ;
  66.        FUNCTION 'Z' WHEN skipwhen() DISABLE
  67. @ 3,29 GET okcancel PICTURE '@*VT \!╓┤  ╨╨;\?╚í  ╧√' ;
  68.        SIZE 1,10,2 DEFAULT 0 WHEN okwhen() VALID okvalid()
  69. READ CYCLE
  70. RELEASE WINDOWS (winname)
  71. RETURN
  72.  
  73. FUNCTION radwhen
  74. IF _CUROBJ = OBJNUM(radio)+3 ;
  75.       AND radio = OBJNUM(radio)+2 ;
  76.       AND lastobj = OBJNUM(radio)+2 ;
  77.       AND (LASTKEY() = enter OR LASTKEY() = TAB ;
  78.       OR LASTKEY() = down OR LASTKEY() = RIGHT)
  79.    _CUROBJ = OBJNUM(recordnum)
  80.    lastobj = OBJNUM(recordnum)
  81.    RETURN
  82. ENDIF
  83.  
  84. IF _CUROBJ = OBJNUM(radio)+2 AND radio = OBJNUM(radio)+2 ;
  85.       AND lastobj = OBJNUM(radio)+3 AND (LASTKEY() = shifttab ;
  86.       OR LASTKEY() = LEFT OR LASTKEY() = up)
  87.    lastobj = _CUROBJ
  88.    _CUROBJ = OBJNUM(recordnum)
  89.    RETURN
  90. ENDIF
  91. lastobj = _CUROBJ
  92.  
  93. FUNCTION radvalid
  94. DO CASE
  95. CASE radio = 1 OR radio = 2
  96.      STORE 0 TO recordnum,skipnum
  97.      SHOW GET recordnum disabled
  98.      SHOW GET skipnum disabled
  99. CASE radio = 3
  100.      STORE 0 TO skipnum
  101.      SHOW GET recordnum enabled
  102.      SHOW GET skipnum disabled
  103.      _CUROBJ = OBJNUM(recordnum)
  104. CASE radio = 4
  105.      STORE 0 TO recordnum
  106.      SHOW GET recordnum disabled
  107.      SHOW GET skipnum enabled
  108.      _CUROBJ = OBJNUM(skipnum)
  109. ENDCASE
  110.  
  111. FUNCTION recwhen
  112. IF lastobj = OBJNUM(radio)+3 AND (LASTKEY() = TAB ;
  113.       OR LASTKEY() = down OR LASTKEY() = RIGHT)
  114.    _CUROBJ = OBJNUM(okcancel)
  115.    RETURN
  116. ENDIF
  117.  
  118. IF lastobj = OBJNUM(okcancel) AND (LASTKEY() = shifttab ;
  119.       OR LASTKEY() = up OR LASTKEY() = LEFT)
  120.    _CUROBJ = OBJNUM(radio)+3
  121.    RETURN
  122. ENDIF
  123. lastobj = _CUROBJ
  124.  
  125.  
  126. FUNCTION recvalid
  127. IF !MDOWN() AND (LASTKEY() = enter OR LASTKEY() = TAB ;
  128.        OR LASTKEY() = down OR LASTKEY() = RIGHT)
  129.    _CUROBJ = OBJNUM(radio)+3
  130.    RETURN
  131. ENDIF
  132.  
  133. IF !MDOWN() AND (LASTKEY()= shifttab ;
  134.       OR LASTKEY() = up OR LASTKEY() = LEFT)
  135.    _CUROBJ = OBJNUM(radio)+2
  136. ENDIF
  137.  
  138. FUNCTION skipwhen
  139. lastobj = _CUROBJ
  140.  
  141. FUNCTION okwhen
  142. lastobj = _CUROBJ
  143.  
  144. FUNCTION okvalid
  145. IF okcancel = 1
  146.    DO CASE
  147.       CASE radio = 1
  148.            GO TOP
  149.       CASE radio = 2
  150.            GO BOTTOM
  151.       CASE radio = 3
  152.            DO CASE
  153.               CASE recordnum > RECCOUNT()
  154.                    GO BOTTOM
  155.               CASE recordnum < 0
  156.                    GO TOP
  157.               OTHERWISE
  158.                    GO recordnum
  159.            ENDCASE
  160.       CASE radio = 4
  161.            DO CASE
  162.               CASE skipnum+RECNO() > RECCOUNT()
  163.                    GO BOTTOM
  164.               CASE skipnum+RECNO() < 0
  165.                    GO TOP
  166.               OTHERWISE
  167.                    SKIP skipnum
  168.            ENDCASE
  169.    ENDCASE
  170. ELSE
  171.    CLOSE ALL
  172. ENDIF
  173. RETURN
  174.