Repeat

GetMouseState(b,x,y);

until b and LeftButtonoO;

HideMouse;

{Определяем выбранный символ}

x := MouseTextCooX(х)-8;

у := MouseTextCooY(у)-7;

х := (у-1)*64+х;

if x>255 then

х := 1; . {Меняем форму курсора}

MouseTextCursor($FFOO,$7FOO+x);

{Восстанавливаем экран}

GetWindow(1) ;

MouseScreen;

ShowMouse

end; {ChangeTeatCursor} {————,—————————————}

{Глобальные определения для обработчика событий от мыши, используемого в режиме выбора графического указателя} const

DX = 40; {Шаг смещения изображений}

NCur =4; {Количество изображений} var

kk, {Ранее выбранное изображение}

хО, {Левая граница изображения}

y0,yl: Integer; {Вертикальные границы}

РР: Pointer; {Изображение указателя}

SizePP: Word; {Его размеры в памяти} Procedure MouseHandler(Mask,Buttons,X,Y,dDX,DY: Integers-Far;

{Отслеживает перемещения мыши и инвертирует изображение,

на которое указывает в данный момент указатель мыши} var

k: Integer; {Текущее изображение} begin

k := (х-ХО) div DX;

if k<l then k := 1;

if k>NCur then k := NCur;

if k=kk then

Exit; {Текущее изображение не изменилось) {Гасим старое и выделяем новое изображение}

PutImage(xO+(2*kk-l) *DX div 2, y0, PP^NormalPut) ;

GetImage(xO+(2*k-l)*DX div 2,y0,x0+(2*k+l)*DX div 2,yl,P?^);

PutImage(xO+(2*k-l)*DX div 2,y0,PP",NotPut) ;

kk := k