📄 adtrmemu.pas
字号:
read FKeyboardMapping;
property Parser : TAdTerminalParser
read FParser;
property NeedsUpdate : boolean
read teGetNeedsUpdate;
property OnProcessChar : TAdOnProcessChar {!!.04}
read FOnProcessChar write FOnProcessChar; {!!.04}
published
property Terminal : TAdCustomTerminal
read FTerminal write teSetTerminal;
end;
TAdTerminal = class(TAdCustomTerminal)
published
{ these properties moved here from TAdCustomTerminal declaration}
property Active;
property AutoCopy; {!!.03}
property AutoScrollback; {!!.03}
property BlinkTime;
property BorderStyle;
property Capture;
property CaptureFile;
property Columns;
property ComPort;
property CursorType;
property FollowCursor; {!!.03}
property HalfDuplex;
property HideScrollbars; {!!.03}
property LazyByteDelay;
property LazyTimeDelay;
property MouseSelect; {!!.03}
property PasteToPort; {!!.04}
property PasteToScreen; {!!.04}
property Rows;
property ScrollbackRows;
property Scrollback;
property UseLazyDisplay;
property WantAllKeys;
property FreezeScrollBack;
property OnCursorMoved;
{publish ancestor's properties}
property Align;
property Color;
property Ctl3D;
property Emulator;
property Enabled;
property Font;
property Height;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property TabOrder;
property TabStop;
property Visible;
property Width;
property PopupMenu;
{publish ancestor's events}
property OnClick;
property OnDblClick;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
end;
type
TAdTTYEmulator = class(TAdTerminalEmulator)
private
FCellWidths : PAdIntegerArray;
FDisplayStr : PAnsiChar;
FDisplayStrSize: integer;
FPaintFreeList : pointer;
FRefresh : Boolean;
protected
{property accessor methods}
function teGetNeedsUpdate : boolean; override;
{overridden ancestor methods}
procedure teClear; override;
procedure teClearAll; override;
procedure teSetTerminal(aValue : TAdCustomTerminal); override;
{miscellaneous}
function ttyCharToCommand (aCh : AnsiChar) : TAdEmuCommand; {!!.04}
procedure ttyDrawChars(aRow, aStartCol, aEndCol : integer;
aVisible : boolean);
{paint node methods}
procedure ttyExecutePaintScript(aRow : integer;
aScript : pointer);
procedure ttyFreeAllPaintNodes;
procedure ttyFreePaintNode(aNode : pointer);
function ttyNewPaintNode : pointer;
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
{overridden ancestor methods}
procedure KeyPress(var Key : AnsiChar); override;
procedure LazyPaint; override;
procedure Paint; override;
procedure ProcessBlock (aData : pointer; aDataLen : longint; {!!.04}
CharSource : TAdCharSource); override; {!!.04}
published
property OnProcessChar; {!!.04}
end;
type
TAdVT100Emulator = class(TAdTerminalEmulator)
private
{FAnswerback : string;} {!!.06}
FBlinkers : pointer;
FBlinkFreeList : pointer;
FCellWidths : PAdIntegerArray;
FDisplayStr : PAnsiChar;
FDisplayStrSize : integer;
FDispUpperASCII : boolean;
FLEDs : integer;
FLineAttrArray : TObject;
FPaintFreeList : pointer;
FRefresh : boolean;
FSecondaryFont : TFont;
{modes}
FANSIMode : boolean;
FAppKeyMode : boolean;
FAppKeypadMode : boolean;
FAutoRepeat : boolean;
FCol132Mode : boolean;
FGPOMode : boolean;{graphics proc.option not supported}
FInsertMode : boolean;
FInterlace : boolean;{interlace chgs are not supported}
FNewLineMode : boolean;
FRelOriginMode : boolean;
FRevScreenMode : boolean;
FSmoothScrollMode : boolean;{smooth scrolling is not supported}
FWrapAround : boolean;
{character sets}
FUsingG1 : boolean;
FG0CharSet : integer;
FG1CharSet : integer;
protected
{ Answerback Property Maintenance } {!!.06}
{procedure DefineProperties (Filer : TFiler); override; } {!!.06}
{function IsAnswerbackStored: Boolean; } {!!.06}
{procedure ReadAnswerback (Reader : TReader); } {!!.06}
{procedure WriteAnswerback (Writer : TWriter); } {!!.06}
{property accessor methods}
function teGetNeedsUpdate : boolean; override;
procedure vttSetCol132Mode(aValue : boolean);
procedure vttSetRelOriginMode(aValue : boolean);
procedure vttSetRevScreenMode(aValue : boolean);
{overridden ancestor methods}
procedure teClear; override;
procedure teClearAll; override;
procedure teSetTerminal(aValue : TAdCustomTerminal); override;
{miscellaneous}
procedure vttDrawChars(aRow, aStartVal, aEndVal : integer;
aVisible : boolean;
aCharValues : boolean);
procedure vttProcessCommand;
function vttGenerateDECREPTPARM(aArg : integer) : string;
procedure vttInvalidateRow(aRow : integer);
procedure vttProcess8bitChar(aCh : AnsiChar);
procedure vttScrollRowsHandler(aSender : TObject;
aCount, aTop, aBottom : integer);
procedure vttToggleNumLock;
{blink node methods}
procedure vttCalcBlinkScript;
procedure vttClearBlinkScript;
procedure vttDrawBlinkOffCycle(aRow, aStartCh, aEndCh : integer);
procedure vttFreeAllBlinkNodes;
procedure vttFreeBlinkNode(aNode : pointer);
function vttNewBlinkNode : pointer;
{paint node methods}
procedure vttExecutePaintScript(aRow : integer;
aScript : pointer);
procedure vttFreeAllPaintNodes;
procedure vttFreePaintNode(aNode : pointer);
function vttNewPaintNode : pointer;
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
{overridden ancestor methods}
procedure BlinkPaint(aVisible : boolean); override;
function HasBlinkingText : boolean; override;
procedure KeyDown(var Key : word; Shift: TShiftState); override;
procedure KeyPress(var Key : AnsiChar); override;
procedure LazyPaint; override;
procedure Paint; override;
procedure ProcessBlock (aData : pointer; aDataLen : longint; {!!.04}
CharSource : TAdCharSource); override; {!!.04}
{modes}
property ANSIMode : boolean
read FANSIMode write FANSIMode;
property AppKeyMode : boolean
read FAppKeyMode write FAppKeyMode;
property AppKeypadMode : boolean
read FAppKeypadMode write FAppKeypadMode;
property AutoRepeat : boolean
read FAutoRepeat write FAutoRepeat;
property Col132Mode : boolean
read FCol132Mode write vttSetCol132Mode;
property GPOMode : boolean
read FGPOMode write FGPOMode;
property InsertMode : boolean
read FInsertMode write FInsertMode;
property Interlace : boolean
read FInterlace write FInterlace;
property NewLineMode : boolean
read FNewLineMode write FNewLineMode;
property RelOriginMode : boolean
read FRelOriginMode write vttSetRelOriginMode;
property RevScreenMode : boolean
read FRevScreenMode write vttSetRevScreenMode;
property SmoothScrollMode : boolean
read FSmoothScrollMode write FSmoothScrollMode;
property WrapAround : boolean
read FWrapAround write FWrapAround;
{miscellaneous}
property LEDs : integer
read FLEDs write FLEDs;
published
property Answerback; {!!.06}
{property Answerback : string } {!!.06}
{ read FAnswerback write FAnswerback; } {!!.06}
property DisplayUpperASCII : boolean
read FDispUpperASCII write FDispUpperASCII;
property OnProcessChar; {!!.04}
end;
implementation
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -