home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / amos / PrgCollection.lha / Smarttext2.AMOS / Smarttext2.amosSourceCode
Encoding:
AMOS Source Code  |  1994-03-12  |  1.5 KB  |  53 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *          Smarttext 2 V1.0         *
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. ' Smarttext2 schiebt die ASCII Werte eines SPACE-Strings 
  9. ' so lange nach oben bis der Wert des Text-String erreicht ist.  
  10. ' Der Unterschied zu Smarttext1 ist, da� der ganze Bildschirm
  11. ' in einem Feld abgespeichert wird und erm�glicht einen schon
  12. ' auf dem Bildschrim bestehenden Text zu manipulieren. 
  13. '  
  14. ' Wenn der Wert des ï¿½bergeben Parameters X kleiner als 0 ist,
  15. ' wird der Text automatisch zentriert. 
  16. ' Ist Y kleiner als 0 wird die aktuelle Cursor-Position ï¿½bernommen.
  17. '
  18. Screen Open 0,320,200,2,0
  19. Curs Off : Flash Off : Paper 0 : Cls 
  20. Palette 0,$FFF
  21. Dim T$(24)
  22. Global T$()
  23. For A=0 To 24
  24.   T$(A)=Space$(40)
  25. Next 
  26. A=0
  27. Repeat 
  28.   Add A,1,1 To 4
  29.   A$="    PRESS ANY KEY TO EXIT!    "
  30.   If A=1 Then A$="         HELLO WORLD!         "
  31.   If A=2 Then A$="     SMART TEXT WITH AMOS     "
  32.   If A=3 Then A$="THIS PROCEDURE IS EASY TO USE!"
  33.   SMARTTEXT[A$,-1,Rnd(10)]
  34.   For W=1 To 10
  35.     Wait Vbl 
  36.     Exit If Inkey$<>"",2
  37.   Next 
  38. Until Inkey$<>""
  39. Procedure SMARTTEXT[T$,X,Y]
  40.   If Y<0 Then Y=Y Curs
  41.   If X<0 Then X=(Screen Width/16)-(Len(T$)/2)
  42.   Repeat 
  43.     B=0
  44.     For A=1 To Len(T$)
  45.       C=Asc(Mid$(T$(Y),A+X,1))
  46.       D=Asc(Mid$(T$,A,1))
  47.       If C<D Then Mid$(T$(Y),A+X,1)=Chr$(C+1)
  48.       If C>D Then Mid$(T$(Y),A+X,1)=Chr$(C-1)
  49.       If C=D Then Inc B
  50.     Next 
  51.     Print At(X,Y);Mid$(T$(Y),X+1,Len(T$));
  52.   Until B=Len(T$)
  53. End Proc