DI: TDisk;

begin

CctDiskInfo(Disk,DI) ;

if Dl.TotSecs > $FFFF then

ReadWriteSector(Disk,Sec,Nsec,Buf,3) else

ReadWriteSector(Disk,Sec,Nsec,Buf,1) ;

end; {ReadSectorf ! ===========; end. {Unit F_Disk} /»===»===.»=»;

П5. МОДУЛЬ FJMOUSE ДЛЯ РАБОТЫ С МЫШЬЮ

Описание модуля см. п.4.2.

/_=============; UNIT F_Mouse; {=="=========.==}

^——————————————————————————————+

] В этом модуле собраны процедуры и функции, ¦

¦ обеспечивающие работу устройства ввода ¦

¦ типа мышь I

+————————————————.—————————————+;

INTERFACE

{Следующий тип используется для определения элементов, выбираемых мышью (cis.SetMouseOptlon)} type

MouseItemType = record

X1,Y1,X2,Y2: Integer; {Координаты области) Butt: Word; {Условия вызова} Key : Word {Скан-код клавиши! end;

{Тип MouseHandlerType определяет процедуру обработки событий от мыши} type

MouseHandlerType = Procedure (Mask,Buttons,X,Y,DX,DY: Integer);

{Константы выбора кнопок мыши} const

LeftButton =1; (Левая кнопка)

RightButton =2; {Правая кнопка}

CenterButton =4; {Средняя кнопка}

AnyButton =7; {Любая кнопка} (Коэффициенты пересчета виртуальных координат в текстовые) const

TextRatioX: Byte = 8;

TextRatioY: Byte =8;

^————————————————————————————+

¦ Инициация мыши ¦ +—————————————————————————————+;

Function IsMouse: Boolean;

{Возвращает TRUE, если мышь доступна}

Function InitMouse: Boolean;

(Инициация мыши}

Procedure SetMousePage(Page: Byte);

{Устанавливает страницу для указателя мыши}

Function GetMousePage: Byte;

{Возвращает номер страницы с указателем}

Procedure SetStepToPixel(Hor,Ver: Integer);