ax = $17;

es = seg(Buff) ;

dx •= ofs(Buff) ;

Intr($33,Reg) end

end; {RestoreMouse} _•+—————————————————————————————+

I Эмуляция клавиатуры I +————————_——.——————.——-_—.————_+; _

const

DoubleChars: Boolean = False;

var

SecChar: Char;

Procedure SetMouseItem(NItem: Byte; var Items);

{Устанавливает элементы для выбора мышью:

NItetti - количество элементов;

Items - array [I..NItem] of MouseItemType;

Старые установки сбрасываются} begin

if IsMouse then begin

ClearMouseItems;

GetMem(ItemsList,NItem*SizeOf(MouseItemType));

Move (Items, ItemsList^NIten^SizeOftMouseItemType));

NMouseItertt := NItem end end; {SatMouseItem} /——_-——————_————;

Procedure AddMouseItemdtem: MouseItemType) ;

{Добавляет еще один элемент для выбора мышыэ. Старые установки сохраняются} var

р: PMouseIt;

k: Byte;

begin

if IsMouse then begin

k := NMouseItem;

GetMem(P,(k+1)*SizeOf(MouseItemType)) ;

Move(ItemsList",P",k*3ize0f(MouseItemType));

Move(Item,Pл[k+1],SizeOf(MouseItemType)) ;

ClearMouseItems;

NMouseItem := k+1;

ItemsList :° P end end; {AddMouseItem} /——————————— ———}

Procedure ClearMouseItems;

(Сбрасывает ранее установленные элементы} begin

if IsMouse and (NMouseItem <>0) then begin

FreeMem(ItemsList,NMouseItem*SizeOf(MouseItemType));

NMouseItem := 0 end

end; {ClearMouseItemf ^———————————————;

Procedure GetMouseItem(var NItem: Byte; var Items);

(Возвращает установленные элементы}