home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
MFMP110A.ZIP
/
SCREEN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-03-10
|
4KB
|
119 lines
(*#module(turbo_comp=>off)*)
Implementation Unit Screen;
IMPORT
PASDOS(rdkey),
TURBOCRT(textcolor,textbackground,clrscr,clreol,gotoxy),
TURBODOS(registers,msdos,intr),
TURBOSYS(ABORT,_STR_INT)
;
{========================================================================}
Function GetInput { : byte; };
Var
NoInputPending : Boolean;
tbyte : byte;
tchar : char;
Begin
tchar := rdkey;
tbyte := tchar::byte;
GetInput := tbyte;
End;
{========================================================================}
Procedure NewTextColor { (NewColor : Byte); };
Var
NewColorAnsi : String[6];
Flash : Boolean;
Begin
If ReDirectTo = Console Then
Begin
TextColor(NewColor);
End
Else
Begin
If NewColor > 128 Then
Begin
NewColor := NewColor - 128;
Flash := True;
End
Else
Begin
Flash := False;
End;
Case NewColor of
0 : NewColorAnsi := '30'; {BLACK}
1 : NewColorAnsi := '34'; {BLUE}
2 : NewColorAnsi := '32'; {GREEN}
3 : NewColorAnsi := '36'; {CYAN}
4 : NewColorAnsi := '31'; {RED}
5 : NewColorAnsi := '35'; {MAGENTA}
6 : NewColorAnsi := '33'; {BROWN}
7 : NewColorAnsi := '37'; {LIGHTGRAY}
8 : NewColorAnsi := '1;30'; {BLACK}
9 : NewColorAnsi := '1;34'; {BLUE}
10: NewColorAnsi := '1;32'; {GREEN}
11: NewColorAnsi := '1;36'; {CYAN}
12: NewColorAnsi := '1;31'; {RED}
13: NewColorAnsi := '1;35'; {MAGENTA}
14: NewColorAnsi := '1;33'; {BROWN}
15: NewColorAnsi := '1;37';
Else {LIGHTGRAY}
End;
If Flash Then NewColorAnsi := '5;'+NewColorAnsi Else NewColorAnsi := '0;'+NewColorAnsi;
Write(chr(27)+'['+NewColorAnsi+'m');
End;
End;
{========================================================================}
Procedure NewTextBackground { (NewColor : Byte); };
Var
NewColorAnsi : String[6];
Begin
If ReDirectTo = Console Then
Begin
TextBackground(NewColor);
End
Else
Begin
Case NewColor of
0 : NewColorAnsi := '40'; {BLACK}
1 : NewColorAnsi := '44'; {BLUE}
2 : NewColorAnsi := '42'; {GREEN}
3 : NewColorAnsi := '46'; {CYAN}
4 : NewColorAnsi := '41'; {RED}
5 : NewColorAnsi := '45'; {MAGENTA}
6 : NewColorAnsi := '43'; {BROWN}
7 : NewColorAnsi := '47';
Else {LIGHTGRAY}
End;
Write(chr(27)+'['+NewColorAnsi+'m');
End;
End;
{========================================================================}
Procedure AnsiClearScreen;
Begin
If ReDirectTo = Console Then ClrScr Else Write(chr(27)+'[2J');
End;
{========================================================================}
Procedure AnsiClearToEOL;
Begin
If ReDirectTo = Console Then ClrEol Else Write(chr(27)+'[K');
End;
{========================================================================}
Procedure AnsiGotoXY { (X, Y : Byte); };
Var
Xpos, Ypos : String[2];
Begin
If ReDirectTo = Console Then
Begin
GotoXY(Y,X);
End
Else
Begin
_STR_INT(X, 0,Xpos); _STR_INT(Y, 0,Ypos);
Write(chr(27)+'['+Xpos+';'+Ypos+'H');
End;
End;
{========================================================================}
End.