SetCursorPos
Set write cursor position.
Declaration
Source position: videoh.inc line 137
procedure SetCursorPos(NewCursorX: Word; NewCursorY: Word);
Description
SetCursorPos positions the cursor on the given position: Column NewCursorX and row NewCursorY. The origin of the screen is the upper left corner, and has coordinates (0,0).
The current position is stored in the CursorX and CursorY variables.
Errors
None.
See also
Name | Description |
---|---|
SetCursorType | Set cursor type |
Example
program example2;
uses video,keyboard;
Var
P,PP,D : Integer;
K: TKeyEvent;
Procedure PutSquare (P : INteger; C : Char);
begin
VideoBuf^[P]:=Ord(C)+($07 shl 8);
VideoBuf^[P+ScreenWidth]:=Ord(c)+($07 shl 8);
VideoBuf^[P+1]:=Ord(c)+($07 shl 8);
VideoBuf^[P+ScreenWidth+1]:=Ord(c)+($07 shl 8);
end;
begin
InitVideo;
InitKeyBoard;
P:=0;
PP:=-1;
Repeat
If PP<>-1 then
PutSquare(PP,' ');
PutSquare(P,'#');
SetCursorPos(P Mod ScreenWidth,P div ScreenWidth);
UpdateScreen(False);
PP:=P;
Repeat
D:=0;
K:=TranslateKeyEvent(GetKeyEvent);
Case GetKeyEventCode(K) of
kbdLeft : If (P Mod ScreenWidth)<>0 then
D:=-1;
kbdUp : If P>=ScreenWidth then
D:=-ScreenWidth;
kbdRight : If ((P+2) Mod ScreenWidth)<>0 then
D:=1;
kbdDown : if (P<(VideoBufSize div 2)-(ScreenWidth*2)) then
D:=ScreenWidth;
end;
Until (D<>0) or (GetKeyEventChar(K)='q');
P:=P+D;
until GetKeyEventChar(K)='q';
DoneKeyBoard;
DoneVideo;
end.