Есть задача, но по ходу её выполнения в активном окне маргает курсор, как это лечить? <_<
volvo
19.10.2005 3:36
Лечить "отключением" курсора. Т.к. само мигание курсора реализовано аппаратно, и отключить его нельзя, то будем просто менять размеры курсора, отображаемого на экране:
procedure SetCursorSize(cStart, cEnd: byte); assembler;
asm
mov ah, 1
mov ch, cStart
mov cl, cEnd
int 10h
end{ Установить нормальный курсор }procedure SetNormalCursor;
var start_end: word;
beginif LastMode > Font8x8 then start_end := $0507elseif LastMode = Mono then start_end := $0b0celse start_end := $0607;
SetCursorSize(hi(start_end), lo(start_end));
end;
{ Установить "блочный" курсор (как в режиме OverWrite) }procedure SetBlockCursor;
var c_end: byte;
beginif (LastMode > font8x8) or (LastMode <> Mono)
then c_end := 7else c_end := 13;
SetCursorSize(0, c_end);
end;
{ Отключить курсор }procedure SetNoCursor;
begin
SetCursorSize(32, 0);
end;
И теперь:
SetNoCursor; { в первой строке программы }
...
SetNormalCursor; { в последней строке }
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.