|
Post by madman on Aug 8, 2006 19:07:37 GMT
Hi guys,
How do I tell qbasic to display a message box after a log in (for example)? The one where you hit OK to continue.
Thanks
|
|
|
Post by Ildûrest on Aug 9, 2006 8:57:02 GMT
DO LOOP UNTIL LEN(INKEY$)
will halt until the user presses a key. If you want to actually have a mouse-clickable button, you need to get into the realm of interrupts.
|
|
|
Post by madman on Aug 9, 2006 18:21:47 GMT
Where can I find info on how to write interrupts?
|
|
|
Post by Mikrondel on Aug 10, 2006 8:20:28 GMT
If you have QBasic 1.1 then you're best finding some pre-written routines because you need to use assembler to use interrupts in QBasic. But if you have QuickBasic 4.5 or 7.1, then go to www.geocities.com/aliphax and get HelpPC from the files section. That has loads of detail on loads of interrupts, including mouse. Usually HelpPC uses hexadecimal notation for numbers so you'll have to keep that in mind. Interrupt 51 (or 33 in hexadecimal) is the mouse interrupt. Simple example: 'SCREEN 12 '(uncomment the above line if you want) CLS
'setting up registers TYPE REGTYPE ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER END TYPE
'declare our register variable DIM regs AS REGTYPE
'Initialise regs.ax = 0 CALL interrupt(51, regs, regs)
'Show mouse regs.ax = 1 CALL interrupt(51, regs, regs)
'Set up regs.ax for mouse poll regs.ax = 3
DO 'Poll mouse CALL interrupt(51, regs, regs)
'Display mouse information LOCATE 1, 1 PRINT regs.bx, regs.cx, regs.dx
'Loop until left mouse click LOOP UNTIL regs.bx = 1 'End SYSTEM
If you'd like more information then say so.
|
|
buff1
New Member
Posts: 3
|
Post by buff1 on Aug 11, 2006 0:35:05 GMT
The standard message box is a windows function and so with Qbasic or QuickBasic you will need to write your own or glean from another program. 'messagebox LLC$ = CHR$(192) ULC$ = CHR$(218) LRC$ = CHR$(217) URC$ = CHR$(191) HOR$ = CHR$(196) VER$ = CHR$(179) RI$ = CHR$(180) LI$ = CHR$(195) dURC$ = CHR$(187)' ¸ dULC$ = CHR$(201)' Õ dLRC$ = CHR$(188)' ¾ dLLC$ = CHR$(200)' Ô dHOR$ = CHR$(205) dVER$ = CHR$(186) COLOR 15, 1 mwidth& = LEN(prompt$) + 10 mheit& = 6 REM 'LOCATE 9, (80 - mwith&) / 2 - mwidth& / 2 REM 'PRINT ULC$; STRING$(mwidth&, HOR$); URC$ 'Unrem above and below for title are and rem below LOCATE 11, (80 - mwith&) / 2 - mwidth& / 2 PRINT ULC$; STRING$(mwidth&, HOR$); URC$
REM 'LOCATE 10, (80 - mwith&) / 2 - mwidth& / 2 REM 'PRINT VER$; SPACE$(mwidth&); VER$;
REM 'LOCATE 11, (80 - mwith&) / 2 - mwidth& / 2 REM 'PRINT LI$; STRING$(mwidth&, HOR$); RI$
FOR k& = 12 TO 15 LOCATE k&, (80 - mwith&) / 2 - mwidth& / 2 PRINT VER$; SPACE$(mwidth&); VER$; NEXT
LOCATE 16, (80 - mwith&) / 2 - mwidth& / 2 PRINT LLC$; STRING$(mwidth&, HOR$); LRC$
'LOCATE 10, (80 - mwith&) / 2 - mwidth& / 2 + LEN(Title$) / 2 'PRINT Title$;
LOCATE 12, (80 - mwith&) / 2 - mwidth& / 2 + 5 PRINT prompt$; COLOR 0, 15
LOCATE 13, (80 - mwith&) / 2 - 3 'mwidth& / 2 + 5 PRINT dULC$; dHOR$; dHOR$; dHOR$; dHOR$; dURC$; LOCATE 14, (80 - mwith&) / 2 - 3 'mwidth& / 2 + 5 PRINT dVER$; : COLOR 15, 15: PRINT " O"; : COLOR 0, 15: PRINT "K "; dVER$; LOCATE 15, (80 - mwith&) / 2 - 3 'mwidth& / 2 + 5 PRINT dLLC$; dHOR$; dHOR$; dHOR$; dHOR$; dLRC$;
a$ = "" WHILE a$ = "": a$ = INKEY$: WEND 'msgbox = a$
|
|
|
Post by madman on Aug 11, 2006 20:50:32 GMT
|
|
buff1
New Member
Posts: 3
|
Post by buff1 on Aug 12, 2006 3:03:14 GMT
DECLARE SUB box (start.l%, col%, ecol%, wth%, lines%, btyp%, new.box%, from.view%) COMMON clr1%, clr2%, clr3%, clr4% start.l% = 8: col% = 25: ecol% = 55: wth% = 29: lines% = 5 clr1% = 15: clr2% = 3: clr3% = 0: clr4% = 4: btyp% = 1 COLOR 15, 1 CLS COLOR clr3%, clr4% box start.l%, col%, ecol%, wth%, lines%, btyp%, new.box%, from.view% COLOR clr3%, clr4% LOCATE start.l% + 1, col% + 1 FOR k% = 1 TO lines% LOCATE start.l% + k%, col% + 1 PRINT SPACE$(wth%); NEXT LOCATE start.l% + 1, col% + 7: PRINT "No data available" COLOR clr1%, clr2% LOCATE start.l% + 3, col% + wth% / 2 - 3: PRINT "> OK <"; : LOCATE 1, 1 WHILE INKEY$ = "": WEND
SUB box (start.l%, col%, ecol%, wth%, lines%, btyp%, new.box%, from.view%) STATIC SHARED clr1%, clr2%, clr3%, clr4% SHARED cm$ SHARED chg.flag% IF clr2% = 0 AND clr3% = 0 THEN cm$ = "N" 'IF wth% < 40 THEN btyp% = 1 IF btyp% = 1 THEN ULC$ = CHR$(218): urc$ = CHR$(191): lV$ = CHR$(179): rv$ = CHR$(179) hor$ = CHR$(196): LLC$ = CHR$(192): lrc$ = CHR$(217) ELSEIF btyp% = 2 THEN ULC$ = CHR$(201): urc$ = CHR$(187): LLC$ = CHR$(200) lrc$ = CHR$(188): hor$ = CHR$(205): lV$ = CHR$(186): rv$ = CHR$(186) ELSE ULC$ = CHR$(221): urc$ = CHR$(222): LLC$ = CHR$(221) lrc$ = CHR$(222): hor$ = " ": lV$ = CHR$(221): rv$ = CHR$(222) END IF
VIEW PRINT 'LOCATE start.l%, col%: PRINT ULC$; STRING$(wth%, hor$); urc$; 'IF wth% = 5 THEN COLOR 15, 7: LOCATE start.l%, col% + 1: PRINT STRING$(wth%, hor$); : COLOR 0, 7 IF wth% <> 5 THEN LOCATE start.l%, col%: PRINT ULC$; STRING$(wth%, hor$); urc$; IF wth% = 5 THEN IF cm$ = "Y" THEN COLOR 15, 7 LOCATE start.l%, col%: PRINT ULC$; STRING$(wth%, hor$); LOCATE start.l% + 1, col%: PRINT lV$; LOCATE start.l% + 2, col%: PRINT LLC$; IF cm$ = "Y" THEN COLOR 0, 7 LOCATE start.l%, ecol%: PRINT urc$; LOCATE start.l% + 1, ecol%: PRINT rv$; LOCATE start.l% + 2, col% + 1: PRINT STRING$(wth%, hor$); lrc$; EXIT SUB ''RETURN END IF FOR j = start.l% + 1 TO start.l% + lines% LOCATE j, col%: PRINT lV$; : LOCATE j, ecol%: PRINT rv$; IF start.l% = 11 AND col% = 28 AND j >= start.l% + 5 AND chg.flag% THEN COLOR clr1%, clr2% IF wth% > 70 AND j = start.l% + 2 AND j < 5 THEN LOCATE j, col% + 1: PRINT STRING$(wth%, 196); NEXT IF wth% < 70 THEN XA$ = LLC$ + STRING$(wth%, hor$) + lrc$ ELSE 'IF new.box% <> -3 THEN XA$ = lV$ + STRING$(wth%, CHR$(177)) + rv$ IF new.box% <> -3 THEN XA$ = lV$ + STRING$(wth%, CHR$(186)) + rv$ IF new.box% = -3 THEN XA$ = LLC$ + STRING$(wth%, hor$) + lrc$ END IF LOCATE start.l% + lines% + 1, col%: PRINT XA$; IF new.box% = -3 THEN EXIT SUB IF wth% < 60 AND new.box% <> -99 AND lines% > 1 THEN IF cm$ = "Y" THEN COLOR 8, 0 ELSE COLOR 7, 0 FOR jj% = start.l% + 1 TO start.l% + lines% + 1 LOCATE jj%, ecol% + 1, 0: PRINT CHR$(SCREEN(jj%, ecol% + 1)); CHR$(SCREEN(jj%, ecol% + 2)); NEXT jj% END IF IF wth% < 40 OR (start.l% + lines% > 21 AND lines% < 18) THEN COLOR clr3%, clr4% ELSE COLOR clr1%, clr2% END IF IF wth% < 60 AND lines% > 1 AND new.box% <> -99 THEN IF cm$ = "Y" THEN COLOR 8, 0 ELSE COLOR 0, 0 END IF REM ** tried above and works good for some colors but decided to put it back IF col% <> 28 AND col% <> 29 AND wth% > 5 THEN LOCATE start.l% + lines% + 1, ecol% + 1 PRINT " "; FOR MM = col% + 2 TO ecol% + 2 k = SCREEN(start.l% + lines% + 2, MM) IF k < 32 THEN k = 32 LOCATE start.l% + lines% + 2, MM: PRINT CHR$(k); NEXT MM END IF COLOR clr1%, clr2% END IF IF rv$ = CHR$(222) THEN COLOR 8, clr4% FOR k% = start.l% TO start.l% + lines% + 1 LOCATE k%, ecol%: PRINT rv$; NEXT END IF IF wth% > 70 AND lines% > 10 AND lines% < 15 AND new.box% <> -99 THEN COLOR clr1%, 0 LOCATE start.l% + lines% + 2, col% + 2: PRINT SPACE$(wth% - 2); COLOR clr1%, clr2% END IF
END SUB
|
|
buff1
New Member
Posts: 3
|
Post by buff1 on Aug 12, 2006 4:21:15 GMT
DECLARE SUB msgbox (start.l%, col%, ecol%, lines%, msg$) COMMON clr1%, clr2%, clr3%, clr4% start.l% = 8: col% = 25: ecol% = 55: wth% = 29: lines% = 4 clr1% = 15: clr2% = 3: clr3% = 0: clr4% = 4 COLOR 15, 1 CLS COLOR clr3%, clr4% msgbox start.l%, col%, ecol%, lines%, "No Data available" WHILE INKEY$ = "": WEND
SUB msgbox (start.l%, col%, ecol%, lines%, msg$) STATIC SHARED clr1%, clr2%, clr3%, clr4% ulc$ = CHR$(218): urc$ = CHR$(191): lV$ = CHR$(179): rv$ = CHR$(179) hor$ = CHR$(196): LLC$ = CHR$(192): lrc$ = CHR$(217) wth% = ecol% - col% - 1 VIEW PRINT LOCATE start.l%, col% PRINT ulc$; STRING$(wth%, hor$); urc$; FOR j = start.l% + 1 TO start.l% + lines% LOCATE j, col%: PRINT lV$; SPACE$(wth%); rv$; NEXT LOCATE start.l% + lines% + 1, col% PRINT LLC$ + STRING$(wth%, hor$) + lrc$ COLOR 8, 0 FOR jj% = start.l% + 1 TO start.l% + lines% + 1 LOCATE jj%, ecol% + 1, 0: PRINT CHR$(SCREEN(jj%, ecol% + 1)); CHR$(SCREEN(jj%, ecol% + 2)); NEXT jj% COLOR 8, 0 COLOR clr1%, 0 LOCATE start.l% + lines% + 2, col% + 2: PRINT SPACE$(wth% + 2); COLOR clr1%, clr2% COLOR clr3%, clr4% LOCATE start.l% + 1, col% + LEN(msg$) / 2 - 2: PRINT msg$ COLOR clr1%, clr2% LOCATE start.l% + 3, col% + wth% / 2 - 2: PRINT "> OK <"; : LOCATE 1, 1
END SUB
|
|
|
Post by LloydabiCe on Nov 7, 2020 2:13:48 GMT
Hi, here on the forum guys advised a cool Dating site, be sure to register - you will not REGRET it <a href=https://bit.ly/384HTnk>https://bit.ly/384HTnk</a>
|
|