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