Структыра tPointerShape описывает графический курсор мыши.
typeПервый вызов MouseSetPointerShape нормально назначает картинку мышевому курсору.
tPointerShape = record
AndMask : array [1..16] of word;
XorMask : array [1..16] of word;
end;
const
a : byte = 1;
{ Почему-то если здесь должна быть хотябы одна (можно и больше)
константа, иначе рисунок PS1 окажется передернут }
PS1 : tPointerShape = ...
PS2 : tPointerShape = ...
procedure MouseSetPointerShape(X, Y : word;
PointerShape : pointer); assembler;
asm
mov AX, $0009
mov BX, X
mov CX, Y
mov DX, Seg PointerShape { << ** }
mov ES, DX { << ** }
mov DX, Offset PointerShape
{
Здесь в паре ES-DX должен быть PointerShape но почему-то
получается ES=0. Пришлось временно поставить "mov DX, DS",
но это не есть карашо
}
int $33
end;
{ И самое прикольное... }
begin
MouseSetPointerShape(8, 8, @PS1); { << 1 }
...
MouseSetPointerShape(8, 8, @PS2); { << 2 }
end.
А вот второй - почему-то опять лепит тот же PS1.