Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

Вопрос по Паскалю: как сделать курсор невидимым? 


Брат   (2002-03-13 09:47) [0]

Как сделать курсор невидимым? Пишу на ТурбоПаскале курсак под ДОС, нарисовал менюшку. Все бы хорошо, но курсор не могу спрятать.



Nebula   (2002-03-13 10:00) [1]

Procedure CursorOn; Assembler;
Asm
mov ah,1
mov ch,6
mov cl,7
int $10
End;
Procedure CursorOff; Assembler;
Asm
mov ah,1
mov ch,$20
int $10
End;
Советую скачать Tech help, старая базенка для DOS программистов, там много интересного, в свое время цены ей не было. Плюс еще список перывания Ральфа Брауна. Было время.



Андрей Сенченко   (2002-03-13 12:10) [2]

Дык ить препода в курсаче наткнутся на ассемблерный код и еще чего доброго вопрос зададут ...
Советую сделать так:
var
r:registers;

Procedure CursorOn;
begin
with r do
begin
AH := 1;
CH := 6;
CL := 7;
end;
Intr($10,r);
end;

Procedure CursorOff;
begin
with r do
begin
AH := 1;
CH := $20;
end;
Intr($10,r);
end;

И на глупые вопросы препода из серии "где взял ?" отвечать уже не "В ГУМе купил", а вполне конкретно: в книжке Фаронова по TP 5.0



Брат   (2002-03-13 14:00) [3]

Спасибо!
Дело в том, что я соседу курсак пишу. С ним я договорился: без комментариев. Так что это уже как бы и не мое дело.



Anatoly Podgoretsky   (2002-03-13 22:51) [4]

Андрей Сенченко © (13.03.02 12:10)
А если чего доброго вопрос зададут?



EsKor   (2002-03-14 03:07) [5]

Обычно с Turbo Pascal-ем используют библиотеку Turbo Professional. Тогда для скрытия и отображения курсора используют
вызов процедур HiddenCursor и NormalCursor соответственно. На всякий случай проверьте нет ли их в стандартном TP. Может я ошибаюсь и дополнительная библиотека не нужна.
Кстати в этой библиотеке есть хорошие модули для работы с окнами (TPWindow) и меню (TPMenu).



~Sergius   (2002-03-14 03:13) [6]

А чтоб вопрос задали такой, на котороый было бы легко ответить, просто можно увести курсор за пределы отображаемого экрана в данном видеорежиме, напр. на 26 строку в 80x25.
Т.е, вместо использования BIOS set cursor type (AH=01)использовать BIOS set cursor position (AH=02h). Оно куда легче объяснимо. В DH задаешь строку, в DL -- колонку:

asm
mov ah,02h
mov dh,0h
mov dl,30
int 10h
end;

Но вывод на экран, разумеется при этом нужно делать напрямую в видеопамять, без всяких Write

НО! так как использование ассемблера в любом случае вызовет вопросы -- то... пусть он выбирает, что он сможет объяснить. По-другому все-равно не сделаешь



~Sergius   (2002-03-14 03:15) [7]

2 EsKor
Никаких процедур для сокрытия курсора в "стандартной поставке" не имеется :-(



EsKor   (2002-03-14 07:43) [8]

Да, никаких процедур для сокрытия курсора в "стандартной поставке" не имеется. Если не связываться с ассемблером, то достаточно заиметь в каталоге TPU один модуль из библиотеки Turbo Professional - это TPCrt.tpu или его исходник TPCrt.pas.
Возможности его не ограничиваются только сокрытием курсора.
Если кому надо могу прислать. Исходника в настоящий момент у меня нет, а TPCrt.tpu есть и весит он 34кБ.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.038 c
1-90921           SB                    2002-03-13 21:56  2002.03.28  
Случайное число


1-90903           Kostya                2002-03-16 16:31  2002.03.28  
Получение кода возврата из внешней программы.


1-90822           A.H.                  2002-03-16 00:30  2002.03.28  
Размер скролл-бара


14-91059          J_S (A)               2002-02-13 16:19  2002.03.28  
ICQ 2001a


6-91025           Bobr                  2002-01-14 17:50  2002.03.28  
Как получить имя текущего пользователя в NT сервисе