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;
Как скрыть курсор в Pascal'e?
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Вот нашел в BP в примерах (BreakOut)
Код:
Может поможет...
неа, не поможет, этот код скрывает и показывает графический курсор, а не текстовый
Цитата:
Originally posted by OdDi
неа, не поможет, этот код скрывает и показывает графический курсор, а не текстовый
неа, не поможет, этот код скрывает и показывает графический курсор, а не текстовый
Есть аналогичная функция 10-го прерывания и для текстового курсора.
Вот, порылся у себя и нашел резидентный справочник.
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Всё намного проще.Нужно курсор установить за пределы окна.
Что-то типа " Gotoxy(100,100); ", только когда что-то вводить и/или выводить будешь, то нужно опять курсор на место вернуть.
Цитата:
Originally posted by RusHak
Всё намного проще.Нужно курсор установить за пределы окна.
Что-то типа " Gotoxy(100,100); ", только когда что-то вводить и/или выводить будешь, то нужно опять курсор на место вернуть.
Всё намного проще.Нужно курсор установить за пределы окна.
Что-то типа " Gotoxy(100,100); ", только когда что-то вводить и/или выводить будешь, то нужно опять курсор на место вернуть.
Дык, придется после каждого вывода по-новой его за экран пихать. По-моему, это не проще, а гиморнее.
Цитата:
Originally posted by sp999
Дык, придется после каждого вывода по-новой его за экран пихать. По-моему, это не проще, а гиморнее.
Дык, придется после каждого вывода по-новой его за экран пихать. По-моему, это не проще, а гиморнее.
А если всё это дело оформить функцией и обращаться к ней по мере необходимости, то может даже и проще будет
Цитата:
Originally posted by Vuglah
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Задача такая: нужно скрыть текстовый курсор, который постоянно мигает. Как это сделать? Может через ассемблер? Через прерывания?
Делается довольно просто - курсор убирается за пределы экрана.
Код:
Procedure HideCursor; Assembler;
Asm
Mov Bh, 0;
Mov Dh, 25;
Mov Dl, 0;
Mov Ah, 2;
Int 10h;
End;
Asm
Mov Bh, 0;
Mov Dh, 25;
Mov Dl, 0;
Mov Ah, 2;
Int 10h;
End;