Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как скрыть курсор в Pascal'e?

1.8K
26 февраля 2006 года
Vuglah
32 / / 29.03.2003
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
929
27 февраля 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?


Вот нашел в BP в примерах (BreakOut)

Код:
procedure Cursor.Show;
begin
  SetCursor(TempCursor);
end;

procedure Cursor.Hide;
begin
  TempCursor := GetCursor;
  SetCursor($2000);
end;

function Cursor.GetCursor : Integer;
var
  Reg : Registers;
begin
  with Reg do
  begin
    AH := 3;
    BH := 0;
    Intr($10, Reg);
    GetCursor := CX;
  end;
end;

procedure Cursor.SetCursor(NewCursor : Integer);
var
  Reg : Registers;
begin
  with Reg do
  begin
    AH := 1;
    BH := 0;
    CX := NewCursor;
    Intr($10, Reg);
  end;
end;

Может поможет...
9.5K
27 февраля 2006 года
OdDi
8 / / 29.01.2005
неа, не поможет, этот код скрывает и показывает графический курсор, а не текстовый
391
27 февраля 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by OdDi
неа, не поможет, этот код скрывает и показывает графический курсор, а не текстовый


Есть аналогичная функция 10-го прерывания и для текстового курсора.

929
28 февраля 2006 года
sp999
198 / / 31.01.2003
Вот, порылся у себя и нашел резидентный справочник.
8.2K
02 марта 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?


Всё намного проще.Нужно курсор установить за пределы окна.
Что-то типа " Gotoxy(100,100); ", только когда что-то вводить и/или выводить будешь, то нужно опять курсор на место вернуть.

929
02 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by RusHak
Всё намного проще.Нужно курсор установить за пределы окна.
Что-то типа " Gotoxy(100,100); ", только когда что-то вводить и/или выводить будешь, то нужно опять курсор на место вернуть.


Дык, придется после каждого вывода по-новой его за экран пихать. По-моему, это не проще, а гиморнее.

8.2K
03 марта 2006 года
RusHak
86 / / 02.03.2006
Цитата:
Originally posted by sp999
Дык, придется после каждого вывода по-новой его за экран пихать. По-моему, это не проще, а гиморнее.


А если всё это дело оформить функцией и обращаться к ней по мере необходимости, то может даже и проще будет

16K
05 марта 2006 года
alBoo
3 / / 05.03.2006
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?



Делается довольно просто - курсор убирается за пределы экрана.

 
Код:
Procedure HideCursor; Assembler;
Asm        
   Mov Bh, 0;
   Mov Dh, 25;          
   Mov Dl, 0;              
   Mov Ah, 2;        
   Int 10h;      
End;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог