5748365 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n mswndow9.bas
   1: '
   2: '  Textbx is very short ,but its very powerful +                           
   3: '  Fonts are made using the letter ASCII charectar code +                  
   4: '  Syntax is explained +                                                   
   5: '  Buttons Dont have text -                                                
   6: '  Background Color selector +                                             
   7: '  Input boxes +                                                           
   8: '
   9: DECLARE SUB Inputbox (X!, y!, T$, Prm$)
  10: DECLARE SUB Win (X!, y!, eX!, Ey!, q!)
  11: DECLARE SUB LoadFont (f$)
  12: DECLARE SUB Font (T$)
  13: DECLARE SUB Background (C!)
  14: DECLARE SUB Sleep2 (T!)
  15: DECLARE SUB Window2 (length!, height!, row!, column!)
  16: DECLARE SUB Textbx (SX!, SY!, eX!, Ey!, T$, r!, l!, pw$, tb$, del)
  17: DECLARE SUB Button1 (X!, y!, S!, P!, tle$)
  18: DIM SHARED Txt(255) AS STRING
  19: DIM SHARED Wind(1 TO 16384)
  20: SCREEN 12
  21: DEF SEG = 0
  22: POKE &H417, (160 XOR &H40)
  23: LoadFont "C:\ASCIN.FNT"
  24: '            ³
  25: '          Fontspec
  26: '
  27: ' Fontspec - Font drive:path\filename (ex. C:\Font1.Fnt or Font1.Fnt )
  28: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  29: Background 1
  30: '          ³
  31: '         Color
  32: '
  33: ' Color - Color of Background
  34: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  35: 
  36: Window2 300, 426, 10, 20
  37: '        ³    ³    ³  ÀÄÄÄ¿
  38: '        ³    ³    ÀÄÄÄ¿  ÀÄÄÄÄ¿
  39: '    Length  Height  StartX  StartY
  40: '
  41: ' Length - How long (left to right) the window is
  42: ' Heigth - How tall (up and down) the window is
  43: ' StartX - Starting X position (pixels down from top)
  44: ' StartY - Starting Y position (pixels right of top)
  45: '
  46: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  47: '
  48: Textbx 40, 40, 290, 55, Txt$, 0, 1, "", "NOTHING", 1
  49: '       ³   ³   ³    ³    ³   ³  ³   ³      ³      ÀÄÄÄÄ¿
  50: '       ³   ³   ³    ³    ³   ³  ³   ÀÄÄ¿   ÀÄÄÄÄÄÄÄÄÄ¿ ³
  51: '       ³   ³   ³    ÀÄÄÄ¿ÀÄÄ¿ÀÄ¿ÀÄÄÄÄÄ¿ÀÄÄÄÄÄÄÄÄÄÄÄÄ¿³ ÀÄÄÄÄÄÄÄÄ¿
  52: '       ³   ÀÄ¿ ÀÄÄÄÄÄ¿  ÀÄÄ¿ÀÄ¿ÀÄÄÄÄÄ¿ÀÄÄÄÄ¿        ³ÀÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÄÄ¿
  53: '   StartX  StartY  EndX  EndY Text  Read  Max_Len Pass_Char TextBx  Overite
  54: '
  55: ' StartX    - Starting X position (pixels down from top)
  56: ' StartY    - Starting Y position (pixels right of top)
  57: ' EndX      - Ending X position (pixels down from top)
  58: ' EndY      - Ending Y position (pixels right of top)
  59: ' Text      - Text read from box
  60: ' Read      - Read text from box (1 to read,0 to just put box)
  61: ' Max_Len.  - Maximum length of text
  62: ' Pass_Char - Charectar to replace typed text ("" for normal text)
  63: ' TextBx    - Text to be in box
  64: ' Overrite  - Can the user overrite TextBx (1 = yes, 0 = no)
  65: '
  66: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  67: 'Button1 50, 100, 56, 0, "   G"
  68: '         ³   ³    ³  ÀÄÄÄ¿  ÀÄÄ¿
  69: '         ³   ÀÄ¿  ÀÄÄÄÄÄ¿ÀÄÄ¿  ÀÄ¿
  70: '      StartY  StartX  Size Press Title
  71: '
  72: ' StartX - Starting X position (pixels down from top)
  73: ' StartY - Starting Y position (pixels right of top)
  74: ' Size   - Size Of Button
  75: ' Press  - 1 or 0 (1 if pressed ,0 if not pressed)
  76: ' Title  - Text on Button
  77: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  78: 'Inputbox 10, 10, Roy$, "TYPE:"
  79: '          ³   ³   ÀÄÄÄÄ¿ ÀÄÄÄÄ¿
  80: '      StartX StartY   Text  Prompt
  81: '
  82: ' StartX - Starting X position (pixels down from top)
  83: ' StartY - Starting Y position (pixels right of top)
  84: ' Text   - Text read from box
  85: ' Prompt - Text in box
  86: '+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  87: 
  88: '              Syntax explanations               
  89: '
  90: '               Place Program here               
  91: 
  92: DO UNTIL INKEY$ = CHR$(13): Sleep2 .3: Button1 50, 100, 56, 1, "   G": Sleep2 .3: Button1 50, 100, 56, 0, "   G": LOOP
  93: Textbx 40, 40, 290, 55, T$, 1, 27, "@", "ROY ", 0
  94: Textbx 40, 60, 290, 75, T$, 1, 27, "", "ROY ", 1
  95: Inputbox 10, 10, Roy$, "DADA!"
  96: 
  97: SUB Background (C)
  98: LINE (-1, -1)-(640, 480), C, BF
  99: END SUB
 100: 
 101: SUB Button1 (X, y, S, P, tle$)
 102: IF P = 0 THEN clr1 = 15: clr2 = 8 ELSE clr1 = 8: clr2 = 15
 103: eX = X + S: Ey = y + S
 104: LINE (X, y)-(eX, Ey), 7, BF
 105: LINE (X, y)-(eX, Ey), 0, B
 106: LINE (X + 5, y + 5)-(eX - 5, Ey - 5), 7, BF
 107: LINE (X + 4, y + 4)-(eX - 4, Ey - 4), 0, B
 108: LINE (X, Ey)-(X + 4, Ey - 4), 0
 109: LINE (eX, y)-(eX - 4, y + 4), 0
 110: PAINT (X + 1, y + 1), clr1, 0
 111: PAINT (eX - 1, Ey - 1), clr2, 0
 112: END SUB
 113: 
 114: SUB Font (T$)
 115: DRAW "C0"
 116: FOR qww = 1 TO LEN(T$)
 117: DRAW "X" + VARPTR$(Txt(ASC(MID$(T$, qww, 1)))): GOTO 1011
 118: 1011 NEXT qww
 119: END SUB
 120: 
 121: SUB Inputbox (X, y, T$, Prm$)
 122: Z = 140
 123: DIM Back(1 TO 9998)
 124: GET (X, y)-(X + 100 + Z, y + 100 + Z), Back
 125: LINE (X, y)-(X + 100 + Z, y + 100 + Z), 0, BF
 126: LINE (X + 2, y + 2)-(X + 98 + Z, y + 98 + Z), 1, BF
 127: LINE (X + 10, y + 10)-(X + 90 + Z, y + 90 + Z), 0, BF
 128: LINE (X + 12, y + 12)-(X + 88 + Z, y + 88 + Z), 7, BF
 129: Xy = X + 15
 130: yX = y + 67 + Z
 131: Xx = X + 85 + Z
 132: yY = y + 82 + Z
 133: Xyz$ = "M" + STR$(X + 13) + "," + STR$(y + 23)
 134: DRAW "X" + VARPTR$(Xyz$)
 135: Font Prm$
 136: Textbx Xy, yX, Xx, yY, T$, 1, 14, "", "", 0
 137: PUT (X, y), Back, PSET
 138: END SUB
 139: 
 140: SUB LoadFont (f$)
 141: OPEN f$ FOR INPUT AS #1: T = 0
 142: DO UNTIL EOF(1)
 143: LINE INPUT #1, a$
 144: Txt(T) = a$
 145: T = T + 1
 146: LOOP
 147: END SUB
 148: 
 149: SUB SCapt (FIL$)
 150: OPEN FIL$ FOR OUTPUT AS #1 LEN = 10000
 151: FOR X = 0 TO 639
 152: FOR y = 0 TO 479
 153: vv$ = CHR$(POINT(X, y) + 32)
 154: PRINT #1, vv$; : PSET (X, y), 15
 155: IF INKEY$ = "" THEN  ELSE CLOSE 1: EXIT SUB
 156: NEXT y
 157: NEXT X
 158: CLOSE 1
 159: END SUB
 160: 
 161: SUB Sleep2 (T)
 162: a = TIMER
 163: DO UNTIL TIMER >= a + T: LOOP
 164: 
 165: 
 166: END SUB
 167: 
 168: SUB SLoad (FIL$)
 169: OPEN FIL$ FOR RANDOM AS #1
 170: FOR X = 0 TO 639
 171: FOR y = 0 TO 479
 172: GET #1, y + 1 * (X + 1), clr$
 173: IF INKEY$ = "" THEN  ELSE CLOSE 1: EXIT SUB
 174: IF EOF(1) THEN CLOSE 1: PSET (X, y), clr%: EXIT SUB
 175: PSET (X, y), ASC(clr$) - 32
 176: 10 NEXT y
 177: NEXT X
 178: END SUB
 179: 
 180: SUB Textbx (SX, SY, eX, Ey, T$, r, l, pw$, tb$, del)
 181: IF LEN(tb$) > l AND r = 1 THEN tb$ = MID$(tb$, 1, l)
 182: T$ = tb$: W = LEN(tb$)
 183: IF del = 1 THEN ds = 0 ELSE ds = LEN(tb$)
 184: IF LEN(pw$) > 1 THEN pw$ = LEFT$(pw$, 1)
 185: LINE (SX - 1, SY - 1)-(eX + 1, Ey + 1), 0, B
 186: LINE (SX, SY)-(eX, Ey), 15, BF
 187: MX$ = "M" + STR$(SX + 2) + "," + STR$(Ey - 2)
 188: DRAW "BX" + VARPTR$(MX$)
 189: IF pw$ = "" THEN Font tb$ ELSE Font STRING$(LEN(tb$), pw$)
 190: IF r = 1 THEN  ELSE EXIT SUB
 191: 12 a$ = INKEY$
 192: IF a$ = "" GOTO 12
 193: IF a$ = CHR$(8) THEN IF LEN(T$) - ds = 0 THEN GOTO 12 ELSE T$ = LEFT$(T$, LEN(T$) - 1): W = W - 1: LINE (SX - 1, SY - 1)-(eX + 1, Ey + 1), 0, B: LINE (SX, SY)-(eX, Ey), 15, BF: DRAW "BX" + VARPTR$(MX$): IF pw$ = "" THEN Font UCASE$(T$): GOTO 12 ELSE Font STRING$(LEN(T$), pw$): GOTO 12
 194: IF a$ = CHR$(13) THEN EXIT SUB
 195: IF W = l THEN GOTO 12
 196: T$ = T$ + a$: W = W + LEN(a$)
 197: B$ = UCASE$(a$)
 198: IF pw$ = "" THEN Font B$ ELSE Font pw$
 199: GOTO 12
 200: END SUB
 201: 
 202: SUB Window2 (length, height, row, column)
 203: LINE (column, row)-(column + length, row + height), 0, B
 204: FOR i% = 1 TO 2
 205: row = row + 1: column = column + 1: height = height - 1: length = length - 1
 206: LINE (column, row)-(column + length, row), 7
 207: LINE (column, row)-(column, row + height), 7
 208: NEXT i%
 209: row = row + 1: column = column + 1: height = height - 1: length = length - 1
 210: LINE (column, row)-(column + length, row), 0
 211: LINE (column, row)-(column, row + height), 0
 212: LINE (column, row)-(column + 18, row + 18), 7, BF
 213: LINE (column, row)-(column + 18, row + 18), 0, B
 214: LINE (column + 18, row - 2)-(column + 18, row + 5), 0
 215: LINE (column - 2, row + 18)-(column + 5, row + 18), 0
 216: LINE (column + 5, row + 7)-(column + 13, row + 9), 15, BF: LINE (column + 5, row + 7)-(column + 13, row + 9), 0, B
 217: LINE (column + 14, row + 7)-(column + 14, row + 9), 8
 218: LINE (column + 6, row + 10)-(column + 14, row + 10), 8, B
 219: LINE (column + 18, row)-(column + length, row + 18), 9, BF
 220: LINE (column + 18, row)-(column + length, row + 18), 0, B
 221: LINE (column + length, row - 3)-(column + length + 2, row + height), 7, BF
 222: LINE (column + length, row - 3)-(column + length + 3, row + height), 0, B
 223: LINE (column + length, row - 2)-(column + length, row - 1), 7
 224: LINE (column + length - 18, row - 2)-(column + length - 18, row - 1), 0
 225: LINE (column + length, row + 18)-(column + length + 2, row + 18), 0
 226: LINE (column, row + height - 3)-(column + length, row + height - 3), 0, B
 227: LINE (column, row + height - 2)-(column + length + 2, row + height), 7, BF
 228: LINE (column - 2, row + height)-(column + length + 2, row + height), 0, B
 229: LINE (column - 2, row + height - 18)-(column, row + height - 18), 0
 230: LINE (column + length - 2, row + height - 18)-(column + length + 2, row + height - 18), 0
 231: LINE (column + 18, row + height)-(column + 18, row + height - 2), 0
 232: LINE (column + length - 18, row + height)-(column + length - 18, row + height - 2), 0
 233: LINE (column + 1, row + 19)-(column + length - 1, row + height - 4), 7, BF
 234: END SUB
 235: 
5748366 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:05:56