|
The Terminal Emulation control provides a virtual terminal
interface for emulating an ANSI or DEC VT-220 compatible
character-based terminal. It can be used in conjunction with the
Telnet interface or the Remote Command interface to display the
output of commands executed on a remote server. It can also be used
independently of any other networking control, such as providing
emulation services for a serial connection.
Display Management
The control provides a number of properties and methods to
manage and update the virtual display. The most commonly used
methods are:
BackColor
This property can be used to change the background color displayed
by the virtual terminal.
ColorMap
This property array can be used to change the default colors which
are used when escape sequences are used to change the foreground or
background color of a character cell. In most cases the default
color map will be appropriate, but applications can change the RGB
values associated with an entry in the color map if needed. For
example, the default value for the color gray is at position 8 in
the color map index with an RGB value of 192,192,192. If you wanted
to use a darker color, you could change the RGB value to
128,128,128
Emulation
This property specifies the type of emulation that is to be
performed by the control. The control is capable of emulating an
ANSI console, a DEC VT-100 and DEC VT-220/320 terminal.
FontName
This property sets the name of the font which is used by the
control to draw text on the display window. Note that there is also
a Font property which returns a Font object for more control over
the font used by the emulator. It is recommended that you only used
fixed-width fonts such as Terminal or Courier New.
FontSize
This property sets the size of the font which is used by the
control to draw text on the display window. Note that there is also
a Font property which returns a Font object for more control over
the font used by the emulator.
ForeColor
This property can be used to change the foreground color displayed
by the virtual terminal.
Write
This is the most commonly used method of writing to the display.
This method will automatically parse the data being written for
escape sequences and update the display appropriately.
Refresh
Refresh the virtual display, updating the current cursor position
and caret. The control will periodically refresh the display
automatically based on its own internal state, but the application
can call this if it wishes to force the display to refresh at that
time.
Reset
This method can be used to reset the display window, the font being
used and the size of the display. Note that resetting the display
causes the contents of the display to be cleared.
Cursor Control
There are a number of properties and methodswhich enable an
application to have direct control over cursor positioning,
clearing the display and so on. In most cases these methods are
called automatically by the control as the result of processing the
escape sequences found in the data being written to the display.
However, an application can choose to manage the display itself.
One important thing to keep in mind is that the X,Y positions used
by these properties and methods refer to the cursor position in the
virtual display and correspond to columns and rows, not pixels.
There is also a slight difference in terminology that you should
be aware of when reading the technical reference documentation. In
Windows, the term "cursor" is typically used to refer to the mouse
pointer, while "caret" is used to refer to the blinking marker that
is displayed at the current position in the display. In the
documentation for the emulator, the term "cursor" is used in the
same way that it is used for character based terminals, as the
marker for the current position in the display. Therefore, in terms
of the control, you can think of the cursor and the caret as being
synonymous.
CursorX
This property returns the current position of the cursor in the
display, or can be used to change the current position. The current
position is given in columns and indicates where the next text
character will be displayed.
CursorY
This property returns the current position of the cursor in the
display, or can be used to change the current position. The current
position is given in rows and indicates where the next text
character will be displayed.
Clear
This method clears the contents of the display. You can clear from
the start of the display to the current cursor position, from the
current position to the end of the display or the entire
display.
DelLine
This method deletes the line at the current cursor position,
shifting the remaining lines in the display up.
InsLine
This method inserts a blank line at the current cursor position,
shifting the following lines down.
ScrollDown
This method scrolls the display down by one line.
ScrollUp
This method scrolls the display up by one line.
Function Key Mapping
Another aspect of terminal emulation is how function keys and
other special keys are handled by the application. The emulation
control can be used to convert Windows virtual key codes into the
escape sequences that are generated by character based
terminals.
KeyMap
This property array allows the application to define character
sequences that should be mapped to special keys. When a special key
is pressed in the emulation window and there is an entry for it in
the key map, the KeyMapped event is fired. For example, if the user
presses the F1 key on the keyboard, the control will translate that
key code into the three characters escape sequence ESC O P (the
ASCII codes 27, 79, 80). That sequence of characters should be sent
to the remote host, which will recognize it as the F1 function key
being pressed. It is important to note that the different emulation
types have different key mappings. Therefore, the remote host must
be set to recognize the same type of terminal that you are
emulating. If you have the emulation set as VT-220 but the server
thinks that you are emulating a VT-100, it will not recognize some
of the escape sequences correctly.
KeyMapped
This event is generated when the user presses a special key while
the emulation window has focus, and that key is mapped to a string
using the KeyMap property array. Typically an application will use
this event to send the mapped key escape sequence to a remote host,
such as a Telnet server.
|