home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd465 / procedures / general_selector.amos / general_selector.amosSourceCode
AMOS Source Code  |  1993-01-08  |  3KB  |  90 lines

  1. ' General Selector V1.0
  2. '
  3. ' This procedure will allow the user to select any words of your choice    
  4. '
  5. ' Type$  -  This is what the user will be asked to select  
  6. ' TF     -  This is the number of records in the array f$  
  7. '
  8. ' Procedure must be used with procs "Draw" & "Push"
  9. '
  10. ' Please see example   -":Procedures/Examples/General_Selector.Amos" 
  11. '
  12. '
  13. '
  14. Procedure GSEL_[TYPE$,TF]
  15.    '     Procedure written by Brett George
  16.    Auto View Off : Menu Off 
  17.    Shared F$()
  18.    For Z=0 To TF
  19.       If F$(Z)="" Then F$(Z)="�" Else Inc NO_OF_FILES
  20.    Next 
  21.    Screen Open 4,512,125,8,Hires
  22.    Flash Off : Curs Off 
  23.    Palette 0,$888,$777,$BBB,$444,$AAA : Cls 0
  24.    _DRAW[90,10,484,124,-1,""] : PUSH[122,25,464,114,"",0]
  25.    PUSH[96,36,116,98,"",0] : Ink 0
  26.    _DRAW[95,20,117,34,-1,""] : _DRAW[95,100,117,114,-1,""]
  27.    _DRAW[98,37,114,97,-1,""]
  28.    Reserve Zone 12 : Sort F$(0)
  29.    _DRAW[95,20,117,33,1,""] : _DRAW[95,100,117,114,2,""]
  30.    Polygon 105,31 To 105,27 To 102,27 To 106,23 To 110,27 To 107,27 To 107,31
  31.    Get Block 1,101,22,16,10,0 : Get Block 2,101,22,16,10,0 : Vrev Block 2
  32.    Put Block 1 : Put Block 2,100,103 : ZB=0 : POS=0 : Wait Vbl 
  33.    Paper 2 : Pen 0
  34.    Locate ,2 : Centre "Please select a "+TYPE$
  35.    If NO_OF_FILES=<10
  36.       For FP=3 To 2+NO_OF_FILES
  37.          If F$(FP-3)<>"�"
  38.             Print At(16,FP+1)+Space$(40)
  39.             Print At(16,FP+1)+Zone$(F$(FP-3),FP)
  40.          End If 
  41.       Next 
  42.    Else 
  43.       For FP=3 To 12
  44.          If F$(FP-3)<>"�"
  45.             Print At(16,FP+1)+Space$(40)
  46.             Print At(16,FP+1)+Zone$(F$(FP-3),FP)
  47.          End If 
  48.       Next 
  49.    End If 
  50.    For Z=0 To 70
  51.       Screen Display Screen,,150-Z,,Z*2 : View : Wait Vbl 
  52.    Next 
  53.    Repeat 
  54.       While Mouse Key=1
  55.          If Mouse Zone=1 and POS>0
  56.             If ZB=0
  57.                ZB=2 : PUSH[95,20,117,34,"",0] : Put Block 1
  58.             End If 
  59.             Dec POS
  60.             For FP=3 To 12
  61.                Print At(16,FP+1)+Space$(40)
  62.                Print At(16,FP+1)+Zone$(F$(FP-3+POS),FP)
  63.             Next 
  64.          End If 
  65.          If Mouse Zone=2 and POS+10<NO_OF_FILES
  66.             If ZB=0
  67.                ZB=1 : PUSH[95,100,117,114,"",0] : Put Block 2,100,103
  68.             End If 
  69.             Inc POS
  70.             For FP=3 To 12
  71.                Print At(16,FP+1)+Space$(40)
  72.                Print At(16,FP+1)+Zone$(F$(FP-3+POS),FP)
  73.             Next 
  74.          End If 
  75.          If ZB=1 Then _DRAW[95,100,117,114,-1,""] : Put Block 2,100,103 : ZB=0
  76.          If ZB=2 Then _DRAW[95,20,117,34,-1,""] : Put Block 1 : ZB=0
  77.          For Z=3 To NO_OF_FILES+2
  78.             If Mouse Zone=Z
  79.                RET$=F$(Z-3+POS) : Exit 3
  80.             End If 
  81.          Next 
  82.       Wend 
  83.    Until Mouse Key=2
  84.    Curs Off : Reserve Zone : Del Block : ZB=0
  85.    For GO=70 To 0 Step True
  86.       Screen Display Screen,,150-GO,,GO*2 : View : Wait Vbl 
  87.    Next 
  88.    Limit Mouse 128,42 To 447,298+(-Ntsc*55) : Screen Close Screen
  89.    Auto View On : POS=0
  90. End Proc[RET$]