begin

if IsMouse and (NMouseItemOO) then begin

NItem := NMouseItem;

Move(ItemsList",Items,NMouseItem*SizeOf(MouseItemType)) end end; {GetMouseItem} ^——————————————_/

Function KeyOrMousePressed: Boolean;

{Âîçâðàùàåò TRUE, åñëè íàæàòà êëàâèøà êëàâèàòóðû èëè êíîïêà ûûøè} vac

b,k: Integer;

MouseActive: Boolean;

begin

(Ñíà÷àëà ïðîâåðÿåì êëàâèàòóðó} if KeyPressed then

KeyOrMousePressed := True

{Åñëè íå íàæàòà íèêàêàÿ êëàâèøà/ ïðîâåðÿåì íàæàòèå êíîïîê þàíè} else with Reg do begin

ax :- $3;

Intr($33,Reg);

if (bx<>0) and (NMouseItemOO) then

{Äà, êíîïêà íàæàòà. Îðãàíèçóåì öèêë ïðîâåðêè ïî âñåì ýëåìåíòàì} begin

MouseActive :» False;

for k := 1 to NMouseItem do if not MouseActive then

with ItemsList^k] do begin

case Butt of

LeftButton : b :=bx and LeftButton;

RightButton : b :=bx and RightButton;

CenterButton: b :-=bx and CenterButton;

AnyButton : b :- bx else b 0;

end; {caaef MouseActive := (b<>0) and

MouseIn(MouseGraphCooX<Xl),MouseGraphCooY(YD,

MouseGraphCooX(X2),MouseGraphCooY(Y2)) end; /for, if}

KeyOrMousePressed := MouseActive end {if (bx<>0) and...}

{Åñëè íå àêòèâíà êëàâèàòóðà ÿäè íå âûáðàí ýëåìåíò, âîçâðàùàåì False} else {Üõ=0 èëè NMouseItemOO}

KeyOrMousePressed := False end {with Reg} end; {KeyOrMousePressed} ^————.—————————;

Function ReadKeyOrMouse: Char;

(Âîçâðàùàåò ñèìâîë íàæàòîé êëàâèøè èëè âûáðàííîãî ýëåìåíòà} var

k: Byte;

b,bb: Word;

MouseActive: Boolean;

label

loop;

begin