Важная информация
Показано с 1 по 8 из 8

Тема: Мышь в QuickBasic

  1. #1 Мышь в QuickBasic 
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    Я прочитал уже 3 книги по QBasic, но ни-где не написано про мышь. Скажите, пожалуйста, есть ли такое вообще в QBasic'e и если есть, то как управлять?
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Тебя интересует мышь конкретно в QBASIC 1.0 - интерпретаторе, или в целом в QB?
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Код :
    DEFINT A-Z
     
    DECLARE SUB MOUSE (m1%, m2%, m3%, m4%)
     
    ' Define the type needed for Interrupt
     
    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
     
    DIM SHARED Inreg AS RegType
    DIM SHARED Outreg AS RegType
     
    SCREEN 12
     
    'включить курсор мыши
    G1% = 1: CALL MOUSE(G1%, G2%, G3%, G4%)
     
    ' Пpочитать кооpдинаты кypсоpа и статyс кнопок
    DO
       G1% = 3: CALL MOUSE(G1%, G2%, G3%, G4%)
       LOCATE 1, 1: PRINT "Кооpдинаты мыши : X ="; G3%; " Y ="; G4%; " "
       LOCATE 3, 1
       SELECT CASE G2%
          CASE IS = 1: PRINT "Hажата левая кнопка  "
          CASE IS = 2: PRINT "Hажата пpавая кнопка "
          CASE IS = 4: PRINT "Hажата сpедняя кнопка"
          CASE ELSE:   PRINT "Кнопки не нажаты     "
       END SELECT
       IF INKEY$ <> "" THEN EXIT DO
    LOOP
     
    'Погасить курсор мыши
    G1% = 2: CALL MOUSE(G1%, G2%, G3%, G4%)
     
    SCREEN 0
     
    SUB MOUSE (m1, m2, m3, m4)
    ' *****************************************************
    ' Эта пpоцедypа обеспечивает интеpфейс с дpайвеpом мыши
    ' m1, m2, m3, m4 - паpаметpы, пеpедаваемые в дpайвеp мыши
    ' и возвpащаемые оттyда. Они соответствyют pегистpам
    ' пpоцессоpа AX, BX, CX, DX
    ' *****************************************************
    n = &H33:       ' пpеpывание 33h
    Inreg.ax = m1   ' входные pегистpы
    Inreg.bx = m2
    Inreg.cx = m3
    Inreg.dx = m4
    CALL Interrupt(n, Inreg, Outreg)
    m1 = Outreg.ax  ' выходные pегистpы
    m2 = Outreg.bx
    m3 = Outreg.cx
    m4 = Outreg.dx
    END SUB
    === end MOUSE.BAS ===

    Вот, я сам ей пользовался в своей игре DosSR, правда она врят ли будет работать в интерпретаторе Qbasic.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  4. #4  
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    Вообще меня интересует под QB 4.5, не пошло. Выдало сообщение об ошибке из-за строки
    CALL Interrupt(n, Inreg, Outreg)
    Сообщение: "Subprogram not defined".
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Попробуй скомпилить в 7.1
    Ответить с цитированием  
     

  6. #6  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Это необязатяльно. Я совсем забыл, нужно перед компиляцией бейсик запустить с ключом /L, например QB /L.
    У меня после этого все заработало даже в 4.5.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  7. #7  
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    Это как? У меня Windows XP и Linux Ubuntu. Но QB работает только в Windows XP. В командной строке что-ли?
    Ответить с цитированием  
     

  8. #8  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Создать .BAT фаил.
    И там написать qbasic /L
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 24.08.2011, 21:15
  2. Мышь в текстовом режиме
    от Kakos_nonos в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 22.01.2011, 19:37
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •