| Class TScreen (unit Emulvt) |
TObject
TScreen is an object to hold an entire screen of line and handle } { Ansi escape sequences to update this virtual screen
| Constructors |
constructor Create;| Functions |
procedure BackSpace;
procedure CarriageReturn;
procedure ClearScreen;
procedure CursorDown;
procedure CursorLeft;
procedure CursorRight;
procedure CursorUp;
destructor Destroy;
procedure Eol;
procedure Eop;
function GetEscapeParam(From : Integer; var Value : Integer) : Integer;
procedure GotoXY(X, Y : Integer);
procedure InvalidEscape(EscCmd : Char);
procedure InvClear;
procedure InvRect(nRow, nCol : Integer);
procedure ProcessCSI_7;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_8;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_A;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_at;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_B;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_C;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_D;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_H;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_h_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_I;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { IBM character set operation (not part of the ANSI standard) } {
procedure ProcessCSI_J;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_K;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_L;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_l_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_M;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_m_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_n_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_P;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_r_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_S;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_s_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_T;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_u;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_u_lc;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessEscape(EscCmd : Char);
procedure ProcessESC_D;
procedure ProcessESC_E;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessESC_M;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Move cursor Up, scroll down if necessary
procedure process_charset_G0(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure process_charset_G1(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure process_charset_G2(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure process_charset_G3(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function ReadStr : String;
procedure ScrollDown;
procedure ScrollUp;
procedure SetAttr(Att : Char);
procedure UnimplementedEscape(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure WriteChar(Ch : Char);
procedure WriteLiteralChar(Ch : Char);
procedure WriteStr(Str : String);| Properties |
| Events |
event OnCursorVisible : TNotifyEvent| Variables |
FAllInvalid : Boolean;
FAttribute : Byte;
FAutoCR : Boolean;
FAutoLF : Boolean;
FAutoWrap : Boolean;
FCarbonMode : Boolean;
FCharSetG0 : Char;
FCharSetG1 : Char;
FCharSetG2 : Char;
FCharSetG3 : Char;
FCKeyMode : Boolean;
FCntLiteral : Integer;
FCol : Integer;
FColCount : Integer;
FColSaved : Integer;
FCursorOff : Boolean;
FEscBuffer : String[80];
FEscFlag : Boolean;
FForceHighBit : Boolean;
FInvRect : TRect;
FLines : array [0..MAX_ROW] of TLine;
FNoXlat : Boolean;
FNoXlatInitial : Boolean;
Focused : Boolean;
FOnCursorVisible : TNotifyEvent;
FReverseVideo : Boolean;
FRow : Integer;
FRowCount : Integer;
FRowSaved : Integer;
FScrollRowBottom : Integer;
FScrollRowTop : Integer;
FUnderLine : Boolean;
FXlatInputTable : PXlatTable;
FXlatOutputTable : PXlatTable;| Constructors |
constructor Create;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
| Functions |
procedure BackSpace;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CarriageReturn;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ClearScreen;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CursorDown;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CursorLeft;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CursorRight;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure CursorUp;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
destructor Destroy;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Eol;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure Eop;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
function GetEscapeParam(From : Integer; var Value : Integer) : Integer;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure GotoXY(X, Y : Integer);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure InvalidEscape(EscCmd : Char);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure InvClear;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure InvRect(nRow, nCol : Integer);* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_7;Restore cursor location
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_8;Save cursor location
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_A;Terminal mode reset
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_at;Cursor position report
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_B;Cursor Up
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_C;Cursor Down
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_D;Cursor Right
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_H;Restore cursor location
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_h_lc;Set Cursor Position
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
procedure ProcessCSI_I;Restore Cursor
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { IBM character set operation (not part of the ANSI standard) } { Select IBM char set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Clear the screen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Erase to End of Line * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Terminal mode set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Insert Line * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Delete Line * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Select Attributes * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Cursor Left * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Insert character * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Delete Character * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Scrolling margins * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Scroll up * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Next line * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Save cursor location * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Reverse index * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Index * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Move cursor Up, scroll down if necessary Scroll down * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * G0 character set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * G1 character set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * G2 character set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Read characters from the cursor to end of line * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * G3 character set * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Write a single character at current cursor location. } { Update cursor position. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Write characters at current cursor location. Update cursor position. Properties Events Variables
procedure ProcessCSI_J;
procedure ProcessCSI_K;
procedure ProcessCSI_L;
procedure ProcessCSI_l_lc;
procedure ProcessCSI_M;
procedure ProcessCSI_m_lc;
procedure ProcessCSI_n_lc;
procedure ProcessCSI_P;
procedure ProcessCSI_r_lc;
procedure ProcessCSI_S;
procedure ProcessCSI_s_lc;
procedure ProcessCSI_T;
procedure ProcessCSI_u;
procedure ProcessCSI_u_lc;
procedure ProcessEscape(EscCmd : Char);
procedure ProcessESC_D;
procedure ProcessESC_E;
procedure ProcessESC_M;
procedure process_charset_G0(EscCmd : Char);
procedure process_charset_G1(EscCmd : Char);
procedure process_charset_G2(EscCmd : Char);
procedure process_charset_G3(EscCmd : Char);
function ReadStr : String;
procedure ScrollDown;
procedure ScrollUp;
procedure SetAttr(Att : Char);
procedure UnimplementedEscape(EscCmd : Char);
procedure WriteChar(Ch : Char);
procedure WriteLiteralChar(Ch : Char);
procedure WriteStr(Str : String);
event OnCursorVisible : TNotifyEvent
FAllInvalid : Boolean;
FAttribute : Byte;
FAutoCR : Boolean;
FAutoLF : Boolean;
FAutoWrap : Boolean;
FCarbonMode : Boolean;
FCharSetG0 : Char;
FCharSetG1 : Char;
FCharSetG2 : Char;
FCharSetG3 : Char;
FCKeyMode : Boolean;
FCntLiteral : Integer;
FCol : Integer;
FColCount : Integer;
FColSaved : Integer;
FCursorOff : Boolean;
FEscBuffer : String[80];
FEscFlag : Boolean;
FForceHighBit : Boolean;
FInvRect : TRect;
FLines : array [0..MAX_ROW] of TLine;
FNoXlat : Boolean;
FNoXlatInitial : Boolean;
Focused : Boolean;
FOnCursorVisible : TNotifyEvent;
FReverseVideo : Boolean;
FRow : Integer;
FRowCount : Integer;
FRowSaved : Integer;
FScrollRowBottom : Integer;
FScrollRowTop : Integer;
FUnderLine : Boolean;
FXlatInputTable : PXlatTable;
FXlatOutputTable : PXlatTable;