PW^AW;

W,op: Word;

Procedure RepChar;

{Повторяет символ в окне повтора} var

k: Word;

begin

{Стираем старое изображение}

PutIniagetXI^YR.WR-^NormalPut) ;

{Формируем новое}

SetWriteMode(NormalPut) ;

SetColor(White) ;

for k := 1 to NVecE do with VecE[k],FontPara do

Line(XR+Xl div DXE,YR+MaxH+LowerMargin-(YB-Y1) div DYE,XR+X2 div DXE, YR+MaxH+LowerMargin-(YB-Y2) div DYE);

end;

{——————}

Function Tabi(var N: Byte): Boolean;

{Выбирает символ из таблицы. Возвращает номер символа или False для правой кнопки} var

X,Y, k,xx,yy,ddx,ddy: Integer;

NX,NY,NXX,NYY: Byte;

Sz: Word;

P: Pointer;

begin

HideMouse;

ddx :" DXT div 2; {Половина ширины}

day :" DYT div 2; {Половина высоты)

X :« XT+ddx; /'Начальный символ)

У :- YT+ddy;

NX :- 0; {Номер столбца)

NY :« 0; {Номер строки)

MouseGotoXy(X,Y) ;

MouseWindow(X,y,X+16*DXT,Y+16*DyT);

{Выделяем символ)

Sz :- ImageSize(X-ddx,Y-ddx,X+ddx,Y+ddx) ;

GetMem(P,sz);

Getlmage(X-ddx,Y-ddy,X+ddx,X+ddy,P*) ;

PutImage(X-ddx,Y-ddy,PA,NotPut) ;

while MousePressed do; ^Сбрасываем кнопку)

{Перемещаемся по таблице до нажатия на кнопку мыши}

while not MousePressed do begin

GetMouseState(k,xx,yy); {Текущее положение} NXX := (xx-XT) div DXT,-NYY := (yy-YI) div DYT;

if (NXONXX) or (NYONYY) then

begin {Перешли в новую клетку} Putlmage(X-ddx,Y-ddy,P",NormalPut) ;

Window(l,l,80,25);

GotoXY(60,25) ;

TextColor(White) ;

TextBackGround(LightRed);

Write(NYY*16+NXX:4,' ');

NX :== NXX;

NY := NYY;

X :» XT+NX*DXT+ddx;

У :« YT+NY*DYT+ddy;

Getlmage(X-ddx,Y-ddy,X+ddx,Y+ddy,P^ ;