Управление монитором и мышью |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Управление монитором и мышью |
RNic7 |
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Nick Репутация: 0 |
По нажатию на левую кнопку мыши все символы переворачиваются вверх ногами. по наведению мыши на символ "Ф", он меняется на "Р".
Буду очень признателен, если хотя бы намекнете, как делать. Устал висеть в гугле уже третие сутки |
RNic7 |
Сообщение
#2
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Nick Репутация: 0 |
Вот нашел что-то. Только я в ассемблере ноль. Как это в программу на паскале влепить?
Код .286 CODE SEGMENT ASSUME CS:CODE,ES:CODE prmaus proc far; процедура обработки событий - при нажатии правой кнопки в нужной области символ изменяется на пробел ;cx - координата по горизонтали ;dx - координата по вертикали cli;запрещаем обработку прерываний push ds; сохраняем регистры push es pusha MOV AX,0B000H ;указываем на ячейку, где начинается видеопамять MOV ES,AX ; mov di,0 ; es:di - начало видеостраницы shr cx,3 ; делим на 8, поскольку координаты в пикселях shr dx,3 ; делим на 8 mov ax,dx; заносим в di 80*2*dx+2*cx mov ah,0 imul ax,(80*2) add ax,cx add ax,cx mov di,ax MOV AL,32 ;символ пробела MOV AH,7 ;нормальные атрибуты movsw ; в месте es:di ставим пробел sti;разрешаем обработку прерываний prmaus endp xor ax,ax ;инициализируем текстовый режим отображения mov ax, 3 int 10h xor ax, ax ; инициализация мышки int 33h mov ax,1 ; отображение курсора int 33h mov ax,0ch ;обработка события - нажатие правой кнопки мышки mov cx, 1000b push es push cs pop es lea dx,prmaus;при нажатии - идём в процедуру int 33h pop es @10: mov ah, 01h; вводим символы с клавиатуры с эхом в видеопамять int 21h ; cmp al,' ' ; до появления символа пробела jne @10 xor cx,cx ;cx=0 mov ax,0ch int 33h ;"останавливаем" мышку mov ax,4c00h;завершаем работу int 21h CODE ends end |
Текстовая версия | 18.06.2024 0:20 |