' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' ALTERNATIVA A INPUT DECLARE SUB intro (v!, h!, text$, limite!) COLOR 15, 15: CLS LOCATE 19, 26: PRINT "El programa no se bloquea:" LOCATE 21, 26: PRINT "El reloj sigue funcionando" COLOR 15, 1 LOCATE 1, 1: PRINT SPACE$(80) LOCATE 1, 16: PRINT "ALTERNATIVA A LA INSTRUCCIàN INPUT - HECHO EN RONDA" LOCATE 20, 26: PRINT " "; TIME$; " " COLOR 15, 1 TIMER ON ON TIMER(1) GOSUB HORA intro 12, 15, "Input m ximo 10 letras: ", 10 LOCATE 7, 10: PRINT "LA ENTRADA DESDE EL TECLADO ES ...... "; cadena$ SLEEP END HORA: COLOR 15 LOCATE 20, 35: PRINT TIME$ RETURN ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' SUB intro (v, h, text$, limite) 'Escribe la pregunta LOCATE v, h: PRINT text$ 'Permite que el contenido de la variable salga fuera de la SUB SHARED cadena$ 'Limpia la variable para borrar otros usos anteriores de la SUB cadena$ = "" 'Limpia el bufer de teclado para evitar acumulaciones de teclas pulsadas antes WHILE INKEY$ <> "": WEND 'Inicicia la captura de letras DO 'Escribe la cadena introducida LOCATE v, h + LEN(text$): PRINT cadena$ 'Dibuja el cursor intermitente y busca su color COLOR 31 LOCATE v, h + LEN(text$) + LEN(cadena$): PRINT CHR$(95); " " 'Espera a que se pulse una tecla y prepara el color fijo COLOR 15 DO kbd$ = INKEY$ LOOP WHILE kbd$ = "" 'Suma a la cadena la tecla pulsada y habilita la tecla IF kbd$ = CHR$(8) AND LEN(cadena$) > 0 THEN : cadena$ = LEFT$(cadena$, LEN(cadena$) - 1): SOUND 600, 1: ELSE : cadena$ = cadena$ + kbd$ 'Borra el si¡mbolo de que se haya podido escribir IF cadena$ = CHR$(8) THEN : cadena$ = "": SOUND 700, 1 'Permite borrar la cadena pulsando IF kbd$ = CHR$(27) THEN : LOCATE v, h + LEN(text$): PRINT SPACE$(LEN(cadena$) + 1): cadena$ = "" 'Controla que no se supere el l¡mite de longitud IF LEN(cadena$) > limite AND ASC(RIGHT$(cadena$, 1)) > 13 THEN : cadena$ = LEFT$(cadena$, LEN(cadena$) - 1): SOUND 1000, 2: SOUND 2000, 1: SOUND 1000, 2: SOUND 2000, 1 'Imput terminado al pulsar LOOP UNTIL kbd$ = CHR$(13) 'Brra el cursor intermitente LOCATE v, h + LEN(text$) + LEN(cadena$) - 1: PRINT SPACE$(limite - LEN(cadena$) + 2) LOCATE v, h + LEN(text$): PRINT cadena$ END SUB