1: DECLARE SUB Absolute (a%, B%, c%, d%, m%) 2: DECLARE SUB LoadWindowsDrivers () 3: DECLARE SUB MsgBox (ms$, Tit$) 4: DECLARE SUB Windows (X!, Y!, Wd!, Ht!, Style%, BackColor!, ForeColor!, Visible!, Caption$, Name$) 5: DECLARE SUB ModifyStatus (frm$, l!, t!, w!, H!, s!, bc!, fc!, v!, c$) 6: DECLARE SUB DoEvents () 7: DECLARE SUB QueryUnload () 8: DECLARE SUB AddForm (frmID$) 9: DECLARE SUB Background (n!) 10: DECLARE SUB Refresh (frm$, n!) 11: DECLARE SUB Button2 (x1!, y1!, x2!, y2!, p!, t$) 12: DECLARE SUB MouseHide () 13: DECLARE SUB Print2 (X!, Y!, cv!, t$) 14: DECLARE SUB MouseShow () 15: DECLARE SUB MouseStatus (lb%, rb%, xMouse%, yMouse%) 16: DECLARE SUB Sleep2 (t!) 17: DECLARE SUB ConvWindInf (gg$, p1!, p2!, p3!, p4!, p5!, p6!, p7!, p8!, tt$, nm$) 18: DECLARE SUB Font (t$, cl!) 19: DECLARE FUNCTION LastPart$ (t$, s$) 20: DECLARE SUB LoadFont (f$) 21: DECLARE SUB MouseDriver (ax%, bx%, cx%, dx%) 22: DECLARE FUNCTION MouseInit% () 23: DECLARE FUNCTION TextWidth! (t$) 24: DECLARE FUNCTION TRIMS$ (n!, t$) 25: DECLARE SUB ChangePal (Red%, Green%, Blue%, syscolor%) 26: '------------------------ Setup Neccasary Drivers ----------------------' 27: CONST True = -1 28: CONST False = NOT (True) 29: DIM SHARED Txt(255) AS STRING 30: DIM SHARED Mouse$ 31: DIM SHARED NoMouse% 32: Mouse$ = SPACE$(57) 33: LoadWindowsDrivers 34: '---------------------------- Code Begins Here --------------------------' 35: MsgBox "QBWinem V1.0" + CHR$(13) + "BY: Roy Keene", "QBWinem" 36: Windows 20, 20, 300, 300, 2, 7, 0, True, "Roy's File Manager", "Form1" 37: Windows 120, 110, 220, 100, 1, 7, 0, False, "QBWinem V1.0", "Form2" 38: ModifyStatus "Form2", 48, 48, 200, 140, -1, 7, -1, True, "" 39: ModifyStatus "Form1", -1, -1, -1, -1, -1, 15, -1, -2, "" 40: 41: DO UNTIL 1 = 2: DoEvents: LOOP 42: 43: QueryUnload 44: END 45: '---------------------------------- GOSUBS --------------------------------' 46: ResumeNext: 47: RESUME NEXT 48: 49: TimerUp: 50: DoEvents 51: RETURN 52: '--------------------------------- DATA for mouse ----------------------' 53: DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B 54: DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53 55: DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F 56: DATA 8B,5E,06,89,17,5D,CA,08,00 57: 58: 'Adds a form to the QBWinem environment 59: 'frmID$ = Left Top Width Height Style ForeColor BackColor Visible Len(Caption)Caption Name 60: SUB AddForm (frmID$) 61: X = FREEFILE 62: OPEN "WIND.WND" FOR RANDOM ACCESS READ AS #X 63: IF LOF(X) = 0 THEN 64: CLOSE X: OPEN "WIND.WND" FOR OUTPUT AS #X 65: ELSE 66: CLOSE X 67: OPEN "WIND.WND" FOR INPUT AS #X 68: DO UNTIL EOF(X) 69: LINE INPUT #X, g$ 70: IF LastPart$(g$, " ") = LastPart$(frmID$, " ") THEN CLOSE X: EXIT SUB 71: LOOP 72: CLOSE X 73: OPEN "WIND.WND" FOR APPEND AS #X 74: END IF 75: PRINT #X, frmID$ 76: CLOSE X 77: END SUB 78: 79: 'Sets the Background color 80: 'n = a vaild color (0-15) 81: SUB Background (n) 82: LINE (0, 0)-(640, 480), n, BF 83: X = FREEFILE 84: OPEN "Back.WND" FOR OUTPUT AS #X 85: PRINT #X, TRIMS$(n, "") 86: CLOSE X 87: Refresh "", 1 88: END SUB 89: 90: 'Draws a button 91: 'x1=starting x pos of button 92: 'y1=starting y pos of button 93: 'x2=ending x pos of button 94: 'y2=ending y pos of button 95: 'p = (0-3) 0=unpushed:1=pushed:3=on enter push and release 96: 't$=Text On Button 97: SUB Button2 (x1, y1, x2, y2, p, t$) 98: MouseHide 99: IF p = 1 OR p = 4 THEN q = 1: GOTO PUSHED 100: LINE (x1, y1)-(x1, y2 - 1), 15 101: LINE (x1, y1)-(x2 - 1, y1), 15 102: LINE (x2 - 1, y1 + 1)-(x2 - 1, y2 - 1), 8 103: LINE (x2 - 1, y2 - 1)-(x1 + 1, y2 - 1), 8 104: LINE (x1, y2)-(x2, y2), 0 105: LINE (x2, y2)-(x2, y1), 0 106: LINE (x1 + 1, y1 + 1)-(x2 - 2, y2 - 2), 7, BF 107: IF p = 6 THEN Print2 INT(((x2 - x1) / 2) - ((LEN(t$) / 2) * 8) + x1), y1 + 14, 0, t$: MouseShow: DO UNTIL Clk% <> 0 AND ClX% > x1 - 1 AND ClX% < x2 + 1 AND ClY% > y1 - 1 AND ClY% < y2 + 1 OR INKEY$ = CHR$(13): MouseStatus l%, r%, ClX%, ClY%: Clk% = l% + r%: LOOP: Sleep2 .13: MouseHide: GOTO PUSHED 108: IF p = 5 THEN Print2 INT(((x2 - x1) / 2) - ((LEN(t$) / 2) * 8) + x1), y1 + 14, 0, t$: DO UNTIL Clk = 1 AND ClX > x1 - 1 AND ClX < x2 + 1 AND ClY > y1 - 1 AND ClY < y2 + 1: LOOP: Sleep2 .13: GOTO PUSHED 109: IF p = 3 THEN Print2 INT(((x2 - x1) / 2) - ((LEN(t$) / 2) * 8) + x1), y1 + 14, 0, t$: MouseShow: DO UNTIL INKEY$ = CHR$(13): LOOP: q = 1: MouseHide ELSE GOTO ssd 110: PUSHED: 111: LINE (x1, y1)-(x1, y2), 0 112: LINE (x1, y1)-(x2, y1), 0 113: LINE (x1 + 1, y1 + 1)-(x1 + 1, y2 - 1), 8 114: LINE (x1 + 1, y1 + 1)-(x2 - 1, y1 + 1), 8 115: LINE (x1 + 1, y2)-(x2, y2), 15 116: LINE (x2, y2)-(x2, y1 + 1), 15 117: LINE (x1 + 2, y1 + 2)-(x2 - 1, y2 - 1), 7, BF 118: ssd: 119: IF LEN(t$) * 8 > x2 - x1 THEN EXIT SUB 120: wdt = x2 - x1 121: Print2 INT((wdt / 2) - ((LEN(t$) / 2) * 8) + x1), y1 + 14 + q, 0, t$ 122: IF p > 2 THEN Sleep2 .13 123: IF p > 2 THEN Button2 x1, y1, x2, y2, 0, t$ 124: MouseShow 125: END SUB 126: 127: SUB ChangePal (Red%, Green%, Blue%, syscolor%) 128: palmask = &H3C6 129: palregrd = &H3CF 130: palregwr = &H3C8 131: paldata = &H3C9 132: OUT palmask, &HFF 133: OUT palregwr, syscolor% 134: OUT paldata, Red% 135: OUT paldata, Green% 136: OUT paldata, Blue% 137: END SUB 138: 139: 'Breaks form information text into neccasary component 140: 'gg$=form id 141: 'p1 - nm$ = used for sending all property's at once 142: ' 143: SUB ConvWindInf (gg$, p1, p2, p3, p4, p5, p6, p7, p8, tt$, nm$) 144: DIM FirstS(7) 145: FirstS(0) = VAL(MID$(gg$, 1, INSTR(gg$, " "))) 146: FOR q = 1 TO 7 147: CNtr = INSTR(CNtr + 1, gg$, " ") 148: ln = INSTR(CNtr + 1, gg$, " ") - CNtr 149: FirstS(q) = VAL(MID$(gg$, CNtr, ln)) 150: NEXT q 151: NmLN = ASC(MID$(gg$, CNtr + ln + 1, 1)) 152: FOR q = CNtr + ln + 2 TO NmLN + CNtr + ln + 1 153: tt$ = tt$ + MID$(gg$, q, 1) 154: NEXT q 155: CNtr = q 156: FOR q = CNtr + 1 TO LEN(gg$) 157: nm$ = nm$ + MID$(gg$, q, 1) 158: NEXT q 159: p1 = FirstS(0) 160: p2 = FirstS(1) 161: p3 = FirstS(2) 162: p4 = FirstS(3) 163: p5 = FirstS(4) 164: p6 = FirstS(5) 165: p7 = FirstS(6) 166: p8 = FirstS(7) 167: END SUB 168: 169: SUB DoEvents 170: MouseStatus l%, r%, X%, Y% 171: a$ = INKEY$ 172: IF a$ = CHR$(27) THEN QueryUnload: END 173: IF a$ = CHR$(9) THEN MsgBox "Tab key was pressed", "/\/\ /-\ CRO /\/\ /-\ |\|" 174: IF a$ = " " THEN ModifyStatus "Form1", -1, -1, -1, -1, -1, -1, -1, -3, "" 175: END SUB 176: 177: 'Draws text on the screen using my fonts 178: 't$ = Text to be printed 179: 'cl = color of text (0-15) 180: SUB Font (t$, cl) 181: IF cl = -1 THEN ELSE f$ = "C" + LTRIM$(RTRIM$(STR$(cl))): DRAW "X" + VARPTR$(f$) 182: IF Txt(32) = "" THEN EXIT SUB 183: FOR qww = 1 TO LEN(t$) 184: IF ASC(MID$(t$, qww, 1)) = 0 THEN DRAW "X" + VARPTR$(Txt(32)) ELSE DRAW "X" + VARPTR$(Txt(ASC(MID$(t$, qww, 1)))): DRAW "BL": GOTO 1011 185: 1011 NEXT qww 186: END SUB 187: 188: ' Used for finding the lastpart of a string 189: 't$=text to find last part of 190: 's$=seperator, what denotes the lastpart from the rest of the string 191: FUNCTION LastPart$ (t$, s$) 192: FOR q = LEN(t$) TO 1 STEP -1 193: IF MID$(t$, q, 1) = s$ THEN EXIT FOR ELSE d$ = MID$(t$, q, 1) + d$ 194: NEXT q 195: LastPart$ = d$ 196: END FUNCTION 197: 198: 'Loads a font from disk 199: 'f$ = Font name (PB version loads several) 200: SUB LoadFont (f$) 201: ON ERROR GOTO ResumeNext 202: OPEN f$ FOR INPUT AS #1: t = 0 203: DO UNTIL EOF(1) OR FRE("") < 1000 204: LINE INPUT #1, Txt(t) 205: IF t = 255 THEN EXIT DO 206: t = t + 1 207: LOOP 208: CLOSE 1 209: END SUB 210: 211: ' Just a sub to make everything look neat 212: SUB LoadWindowsDrivers 213: SCREEN 12 214: LoadFont "\FONTS\MSSANSSE.FNT" 215: Background 3 216: ON TIMER(1) GOSUB TimerUp: TIMER ON 217: 218: FOR I% = 1 TO 57: READ a$: H$ = CHR$(VAL("&H" + a$)): MID$(Mouse$, I%, 1) = H$: NEXT I% 219: ms% = MouseInit% 220: IF NOT ms% THEN PRINT "Mouse not found": NoMouse% = True 221: MouseShow 222: ChangePal 0, 0, 165, 1 223: ChangePal 0, 0, 255, 9 224: END SUB 225: 226: ' Allows You to modify the status of a form 227: 'frm$=Form name 228: 'l - fc= (-1 to ignore) 229: 'v= visible (-2 to ignore) 230: 'c$=Caption (Null to ignore) 231: SUB ModifyStatus (frm$, l, t, w, H, s, bc, fc, v, c$) 232: X = FREEFILE 233: OPEN "WIND.WND" FOR INPUT AS #X 234: z = FREEFILE 235: OPEN "WIND.TMP" FOR OUTPUT AS #z 236: DO UNTIL EOF(X) 237: LINE INPUT #1, g$ 238: IF LastPart$(frm$, " ") = LastPart$(g$, " ") THEN 239: ConvWindInf g$, p1, p2, p3, p4, p5, p6, p7, p8, ttl$, Nam$ 240: op8 = p8 241: IF l = -1 THEN ELSE p1 = l: EntSc = 1 242: IF t = -1 THEN ELSE p2 = t: EntSc = 1 243: IF w = -1 THEN ELSE p3 = w: EntSc = 1 244: IF H = -1 THEN ELSE p4 = H: EntSc = 1 245: IF s = -1 THEN ELSE p5 = s 246: IF bc = -1 THEN ELSE p6 = bc 247: IF fc = -1 THEN ELSE p7 = fc 248: IF v = -3 THEN v = NOT (p8) 249: IF v = -2 THEN ELSE p8 = v: EntSc = 1 250: IF c$ = "" THEN ELSE ttl$ = c$ 251: IF op8 = False THEN EntSc = 0 252: IF LEN(g$) + LOC(X) >= LOF(X) THEN ELSE EntSc = 1 253: g$ = TRIMS$(p1, "") + " " + TRIMS$(p2, "") + " " + TRIMS$(p3, "") + " " + TRIMS$(p4, "") + " " + TRIMS$(CSNG(p5), "") + " " + TRIMS$(p6, "") + " " + TRIMS$(p7, "") + " " + TRIMS$(p8, "") + " " + CHR$(LEN(ttl$)) + ttl$ + " " + TRIMS$(0, Nam$) 254: END IF 255: PRINT #z, g$ 256: LOOP 257: CLOSE X, z 258: KILL "WIND.WND" 259: NAME "WIND.TMP" AS "WIND.WND" 260: IF (op8 = False AND p8 = False) THEN ELSE Refresh frm$, EntSc 261: END SUB 262: 263: SUB MouseDriver (ax%, bx%, cx%, dx%) 264: IF NoMouse% = True THEN EXIT SUB 265: DEF SEG = VARSEG(Mouse$) 266: Mouse% = SADD(Mouse$) 267: CALL Absolute(ax%, bx%, cx%, dx%, Mouse%) 268: END SUB 269: 270: SUB MouseHide 271: MouseDriver 2, 0, 0, 0 272: END SUB 273: 274: FUNCTION MouseInit% 275: ax% = 0 276: MouseDriver ax%, 0, 0, 0 277: MouseInit% = ax% 278: END FUNCTION 279: 280: SUB MouseShow 281: MouseDriver 1, 0, 0, 0 282: END SUB 283: 284: SUB MouseStatus (lb%, rb%, xMouse%, yMouse%) 285: ax% = 3 286: MouseDriver ax%, bx%, cx%, dx% 287: lb% = ((bx% AND 1) <> 0) 288: rb% = ((bx% AND 2) <> 0) 289: xMouse% = cx% 290: yMouse% = dx% 291: END SUB 292: 293: 'Moves a form 294: SUB Move (nm$, left, top) 295: ModifyStatus nm$, left, top, -1, -1, -1, -1, -1, -1, "" 296: END SUB 297: 298: SUB MsgBox (ms$, Tit$) 299: MouseHide 300: wt$ = "OK" 301: s = 17 302: v = 15 303: s = s + v 304: FOR w = 1 TO LEN(ms$): l = l + 1: IF MID$(ms$, w, 1) = CHR$(13) THEN s = s + v 305: NEXT w 306: IF LEN(Tit$) >= LEN(ms$) THEN pix = INT(LEN(Tit$) * 8.4) ELSE pix = INT(LEN(ms$) * 8) 307: IF INT(LEN(wt$) * 8.4) > pix THEN pix = INT(LEN(" (Press ENTER to continue.)") * 8.4) 308: X = 320 - INT(pix / 2) 309: Y = 175 - s 310: DIM back(1 TO 10998) 311: GET (X, Y)-(X + pix, Y + s + v), back 312: LINE (X + 1, Y + 1)-(X + pix - 1, Y + v), 1, BF 313: m$ = "BM" + RTRIM$(LTRIM$(STR$(X + 5))) + ", " + RTRIM$(LTRIM$(STR$(Y + v + 1))) 314: DRAW "X" + VARPTR$(m$) 315: Font Tit$, 15 316: LINE (X, Y)-(X + pix, Y + s + v), 0, B 317: LINE (X, Y + v)-(X + pix, Y + s + v), 0, B 318: LINE (X + 1, Y + v + 1)-(X + pix - 1, Y + s + v - 1), 7, BF 319: m$ = "BM" + RTRIM$(LTRIM$(STR$(X + 2))) + ", " + RTRIM$(LTRIM$(STR$(Y + v + v + 1))) 320: DRAW "X" + VARPTR$(m$) 321: j = Y 322: FOR a = 1 TO LEN(ms$) 323: IF MID$(ms$, a, 1) = CHR$(13) THEN j = j + v: m$ = "BM" + RTRIM$(LTRIM$(STR$(X + 2))) + ", " + RTRIM$(LTRIM$(STR$(j + v + v + 1))): DRAW "X" + VARPTR$(m$) 324: Font MID$(ms$, a, 1), 0 325: NEXT a 326: j = j + v: m$ = "BM" + RTRIM$(LTRIM$(STR$(INT(X + (pix / 2) + (LEN(wt$) / 2) - 30)))) + ", " + RTRIM$(LTRIM$(STR$(j + v + v + 1))): DRAW "X" + VARPTR$(m$) 327: 'Font wt$ 328: d = INT(X + (pix / 2) + (LEN(wt$) / 2) - 30) 329: j = INT(j + v + v + 1) 330: m = 117 331: n = -107 332: MouseShow 333: Button2 j - n, d - m, j + 35 - n, d + 14 - m, 6, wt$ 334: PUT (X, Y), back, PSET 335: END SUB 336: 337: SUB Print2 (X, Y, cv, t$) 338: IF X = -1 AND Y = -1 THEN d$ = "C" + LTRIM$(RTRIM$(STR$(cv))): GOTO 3 339: IF X = -2 THEN X = (POS(0) * 8) - 7: g = -2 340: IF Y = -2 THEN Y = CSRLIN * 16: n = -2 341: xxx$ = LTRIM$(RTRIM$(STR$(X))) 342: yyy$ = LTRIM$(RTRIM$(STR$(Y))) 343: ccc$ = " C" + LTRIM$(RTRIM$(STR$(cv))) 344: 'LOCATE 1, 1: PRINT d$ 345: 3 PSET (X, Y), POINT(X, Y) 346: Font t$, cv 347: IF g = -2 THEN LOCATE CSRLIN, POS(0) + LEN(t$) 348: IF n = -2 THEN LOCATE CSRLIN + 1, 1 349: END SUB 350: 351: 'Does nessacery stuff before shutting down 352: SUB QueryUnload 353: KILL "WIND.WND" 354: KILL "BACK.WND" 355: END SUB 356: 357: ' Refreshes a form or the screen 358: 'frm$=Name of form to refresh (ignored if n=1) 359: 'n=Refresh screen (0 to ignore) 360: SUB Refresh (frm$, n) 361: IF n = 1 THEN 362: OPEN "WIND.WND" FOR RANDOM AS #1 363: IF LOF(1) = 0 THEN CLOSE 1: EXIT SUB ELSE CLOSE 1 364: OPEN "WIND.WND" FOR INPUT AS #1 365: DIM FirstS(6) AS SINGLE 366: OPEN "BACK.WND" FOR INPUT AS #2: INPUT #2, Bck: CLOSE #2 367: MouseHide 368: LINE (0, 0)-(640, 480), Bck, BF 369: DO UNTIL EOF(1) 370: LINE INPUT #1, gg$ 371: ConvWindInf gg$, p1, p2, p3, p4, p5, p6, p7, p8, tt$, nm$ 372: Windows p1, p2, p3, p4, CINT(p5), p6, p7, p8, tt$, nm$ 373: CNtr = 0: ln = 0: FOR q = 0 TO 5: FirstS(q) = 0: NEXT q: tt$ = "": nm$ = "" 374: LOOP 375: CLOSE 1 376: MouseShow 377: EXIT SUB 378: END IF 379: OPEN "WIND.WND" FOR RANDOM AS #1 380: IF LOF(1) = 0 THEN CLOSE 1: EXIT SUB ELSE CLOSE 1 381: OPEN "WIND.WND" FOR INPUT AS #1 382: DO UNTIL EOF(1) 383: LINE INPUT #1, gg$ 384: IF LastPart$(gg$, " ") = frm$ THEN ConvWindInf gg$, p1, p2, p3, p4, p5, p6, p7, p8, tt$, nm$: Windows p1, p2, p3, p4, CINT(p5), p6, p7, p8, tt$, nm$ 385: LOOP 386: CLOSE 1 387: END SUB 388: 389: SUB Sleep2 (t) 390: a = TIMER 391: DO UNTIL TIMER >= a + t: LOOP 392: END SUB 393: 394: FUNCTION TextWidth (t$) 395: FOR q = 1 TO LEN(t$) 396: ta$ = Txt$(ASC(MID$(t$, q, 1))) 397: FOR m = 1 TO LEN(ta$) 398: IF LCASE$(MID$(ta$, m, 2)) = "br" THEN sz = sz + 1 399: IF LCASE$(MID$(ta$, m, 2)) = "bl" THEN sz = sz - 1 400: NEXT m 401: NEXT q 402: TextWidth = sz 403: END FUNCTION 404: 405: FUNCTION TRIMS$ (n, t$) 406: IF t$ = "" THEN TRIMS$ = LTRIM$(RTRIM$(STR$(n))) ELSE TRIMS$ = LTRIM$(RTRIM$(t$)) 407: END FUNCTION 408: 409: SUB Windows (X, Y, Wd, Ht, Style%, BackColor, ForeColor, Visible, Caption$, Name$) 410: IF Visible = False THEN GOTO DoNotShow 411: MouseHide 412: x2 = X + Wd 413: y2 = Y + Ht 414: IF Style% = 2 OR Style% = 3 THEN 415: LINE (X, Y)-(X, Y + Ht), 7 416: LINE (X, Y)-(X + Wd, Y), 7 417: LINE (X + 1, Y + 1)-(X + 1, Y + Ht - 1), 15 418: LINE (X + 1, Y + 1)-(X + Wd - 1, Y + 1), 15 419: LINE (X + 2, Y + 2)-(X + Wd - 2, Y + 2), 7 420: LINE (X + 2, Y + 2)-(X + 2, Y + Ht - 2), 7 421: LINE (X, Y + Ht)-(X + Wd, Y + Ht), 0 422: LINE (X + Wd, Y)-(X + Wd, Y + Ht), 0 423: LINE (X + 1, Y + Ht - 1)-(X + Wd - 1, Y + Ht - 1), 8 424: LINE (X + Wd - 1, Y + 1)-(X + Wd - 1, Y + Ht - 1), 8 425: LINE (X + 2, Y + Ht - 2)-(X + Wd - 2, Y + Ht - 2), 7 426: LINE (X + Wd - 2, Y + 2)-(X + Wd - 2, Y + Ht - 2), 7 427: LINE (X + 3, Y + 3)-(X + Wd - 3, Y + Ht - 3), BackColor, BF 428: IF Caption$ <> "" THEN LINE ((X + 3), Y + 3)-(X + Wd - 3, Y + 19), 1, BF 429: 'IF TextWidth(Caption$) > (X + Wd) / 2 THEN Caption$ = LEFT$(Caption$, 1) + "..." 430: Print2 ((X + 2 + 20) - (Style% - 2) * 18), Y + 17, 15, Caption$ 431: END IF 432: IF Style% = 0 THEN LINE (X, Y)-(X + Wd, Y + Ht), BackColor, BF 433: IF Style% = 1 THEN 434: LINE (X, Y)-(X + Wd, Y + Ht), 0, B 435: LINE (X + 1, Y + 1)-(X + Wd - 1, Y + Ht - 1), BackColor, BF 436: IF Caption$ <> "" THEN LINE (X + 1, Y + 1)-(X + Wd - 1, Y + 18), 1, BF 437: Print2 (X + 2 + 20), Y + 17, 15, Caption$ 438: END IF 439: MouseShow 440: DoNotShow: 441: frm$ = TRIMS$(X, "") + " " + TRIMS$(Y, "") + " " + TRIMS$(Wd, "") + " " + TRIMS$(Ht, "") + " " + TRIMS$(CSNG(Style%), "") + " " + TRIMS$(BackColor, "") + " " + TRIMS$(ForeColor, "") + " " + TRIMS$(Visible, "") + " " + CHR$(LEN(Caption$)) + Caption$ + " " + TRIMS$(0, Name$) 442: AddForm frm$ 443: END SUB 444: |