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