📄 adtrmemu.pas
字号:
procedure KeyDown(var Key : word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure MouseDown(Button : TMouseButton; Shift : TShiftState;
X, Y : integer); override;
procedure MouseMove(Shift : TShiftState; X, Y : integer); override;
procedure MouseUp(Button : TMouseButton; Shift : TShiftState;
X, Y : integer); override;
procedure PaintWindow(DC : HDC); override;
procedure Notification(AComponent : TComponent;
Operation : TOperation); override;
{message and event handlers}
procedure ApwPortOpen(var Msg : TMessage); message APW_PORTOPEN;
procedure ApwPortClose(var Msg : TMessage); message APW_PORTCLOSE;
procedure ApwPortClosing(var Msg : TMessage); message APW_CLOSEPENDING; {!!.03}
procedure ApwTermForceSize(var Msg : TMessage); message APW_TERMFORCESIZE;
procedure ApwTermNeedsUpdate (var Msg : TMessage); {!!.05}
message apw_TermNeedsUpdate; {!!.05}
procedure ApwTermStuff(var Msg : TMessage); message APW_TERMSTUFF;
procedure AwpWaitForPort (var Msg : TMessage); message apw_TermWaitForPort;{!!.03}
procedure CMCtl3DChanged(var Msg : TMessage); message CM_CTL3DCHANGED;
procedure CMFontChanged(var Msg : TMessage); message CM_FONTCHANGED;
procedure CNKeyDown(var Msg : TWMKeyDown); message CN_KEYDOWN;
procedure CNSysKeyDown(var Msg : TWMKeyDown); message CN_SYSKEYDOWN;
procedure tmBeat(Sender: TObject);
procedure tmTriggerHandler(Msg, wParam : Cardinal; lParam : longint);
procedure WMCancelMode(var Msg : TMessage); message WM_CANCELMODE;
procedure WMCopy(var Msg : TMessage); message WM_COPY;
procedure WMEraseBkgnd(var Msg : TMessage); message WM_ERASEBKGND;
procedure WMGetDlgCode(var Msg : TMessage); message WM_GETDLGCODE;
procedure WMHScroll(var Msg : TWMScroll); message WM_HSCROLL;
procedure WMKillFocus(var Msg: TWMSetFocus); message WM_KILLFOCUS;
procedure WMPaint(var Msg : TWMPaint); message WM_PAINT;
procedure WMPaste (var Msg : TWMPaste); message WM_PASTE; {!!.04}
procedure WMSetFocus(var Msg: TWMSetFocus); message WM_SETFOCUS;
procedure WMSize(var Msg : TWMSize); message WM_SIZE;
procedure WMVScroll(var Msg : TWMScroll); message WM_VSCROLL;
{TCustomControl emulation}
procedure Paint;
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
{overridden ancestor methods}
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure DestroyWnd; override;
{terminal methods}
procedure Clear;
procedure ClearAll;
procedure CopyToClipboard;
function GetTotalCharWidth : Integer; {!!.06}
function GetTotalCharHeight : Integer; {!!.06}
procedure HideSelection;
procedure WriteChar(aCh : AnsiChar);
procedure WriteString(const aSt : string);
function HasFocus : Boolean;
procedure PasteFromClipboard; {!!.04}
{public properties}
property Attributes [aRow, aCol : integer] : TAdTerminalCharAttrs
read tmGetAttributes write tmSetAttributes;
property BackColor [aRow, aCol : integer] : TColor
read tmGetBackColor write tmSetBackColor;
property Color;
property Canvas : TCanvas
read FCanvas;
property CharHeight : integer
read FCharHeight;
property CharHPadding : Integer {!!.06}
read FCharHPadding write tmSetCharHPadding default 0; {!!.06}
property CharSet [aRow, aCol : integer] : byte
read tmGetCharSet write tmSetCharSet;
property CharVPadding : Integer {!!.06}
read FCharVPadding write tmSetCharVPadding default 0; {!!.06}
property CharWidth : integer
read FCharWidth;
property ClientCols : integer
read FClientCols;
property ClientRows : integer
read FClientRows;
property ClientOriginCol : integer
read FOriginCol write tmSetOriginCol;
property ClientOriginRow : integer
read FOriginRow write tmSetOriginRow;
property ForeColor [aRow, aCol : integer] : TColor
read tmGetForeColor write tmSetForeColor;
property HaveSelection : boolean
read FHaveSelection;
property Line [aRow : integer] : string
read tmGetLine write tmSetLine;
property Emulator : TAdTerminalEmulator
read tmGetEmulator write tmSetEmulator;
{published}
property Active : boolean
read FActive write tmSetActive
default adc_TermActive;
property AutoCopy : Boolean {!!.03}
read FAutoCopy write tmSetAutoCopy {!!.03}
default adc_TermAutoCopy; {!!.03}
property AutoScrollback : Boolean {!!.03}
read FAutoScrollback write tmSetAutoScrollback {!!.03}
default adc_TermAutoScrollback; {!!.03}
property BlinkTime : integer
read FBlinkTime write tmSetBlinkTime
default adc_TermBlinkTime;
property BorderStyle : TBorderStyle
read FBorderStyle write tmSetBorderStyle
default adc_TermBorderStyle;
property Capture : TAdCaptureMode
read FCapture write tmSetCapture
default adc_TermCapture;
property CaptureFile : string
read FCaptureFile write tmSetCaptureFile;
property Columns : integer
read tmGetColumns write tmSetColumns
default adc_TermColumnCount;
property ComPort : TapdCustomComPort
read FComPort write tmSetComPort;
property CursorType : TAdCursorType
read FCursorType write tmSetCursorType
default adc_TermCursorType;
property FollowCursor : Boolean {!!.03}
read FFollowCursor write tmSetFollowCursor {!!.03}
default adc_TermFollowsCursor; {!!.03}
property HalfDuplex : boolean
read FHalfDuplex write FHalfDuplex
default adc_TermHalfDuplex;
property HideScrollbars : Boolean {!!.03}
read FHideScrollbars write tmSetHideScrollbars {!!.03}
default adc_TermHideScrollbars; {!!.03}
property LazyByteDelay : integer
read FLazyByteDelay write tmSetLazyByteDelay
default adc_TermLazyByteDelay;
property LazyTimeDelay : integer
read FLazyTimeDelay write tmSetLazyTimeDelay
default adc_TermLazyTimeDelay;
property MouseSelect : Boolean {!!.03}
read FMouseSelect write tmSetMouseSelect {!!.03}
default adc_TermMouseSelect; {!!.03}
property PasteToPort : Boolean {!!.04}
read FPasteToPort write tmSetPasteToPort {!!.04}
default adc_TermPasteToPort; {!!.04}
property PasteToScreen : Boolean {!!.04}
read FPasteToScreen write tmSetPasteToScreen {!!.04}
default adc_TermPasteToScreen; {!!.04}
property Rows : integer
read tmGetRows write tmSetRows
default adc_TermRowCount;
property ScrollbackRows : integer
read tmGetScrollbackRows write tmSetScrollbackRows
default adc_TermScrollRowCount;
property Scrollback : boolean
read FScrollback write tmSetScrollback;
property UseLazyDisplay : boolean
read FUseLazyDisplay write tmSetUseLazyDisplay
default adc_TermUseLazyDisplay;
property UsingHScrollBar : Boolean {!!.06}
read FUseHScrollbar; {!!.06}
property UsingVScrollBar : Boolean {!!.06}
read FUseVScrollbar; {!!.06}
property WantAllKeys : boolean
read FWantAllKeys write tmSetWantAllKeys
default adc_TermWantAllKeys;
property FreezeScrollBack : boolean
read FFreezeScrollBack write tmSetFreezeScrollBack
default adc_FreezeScrollBack;
property OnCursorMoved : TAdTerminalCursorMovedEvent
read FOnCursorMoved write FOnCursorMoved;
{publish ancestor's properties}
{ section moved to TAdTerminal declaration }
end;
TAdTerminalEmulator = class(TApdBaseComponent)
private
FAnswerback : string; {!!.06}
FTerminalBuffer : TAdTerminalBuffer;
FCharSetMapping : TAdCharSetMapping;
FIsDefault : boolean;
FKeyboardMapping : TAdKeyboardMapping;
FParser : TAdTerminalParser;
FTerminal : TAdCustomTerminal;
{saved cursor details}
FSavedAttrs : TAdTerminalCharAttrs;
FSavedBackColor : TColor;
FSavedCharSet : byte;
FSavedCol : integer;
FSavedForeColor : TColor;
FSavedRow : integer;
FOnProcessChar : TAdOnProcessChar; {!!.04}
FCommandList : TAdEmuCommandList; {!!.04}
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 access methods}
function teGetNeedsUpdate : boolean; virtual;
procedure teSetTerminal(aValue : TAdCustomTerminal); virtual;
{overridden ancestor methods}
procedure Notification(AComponent : TComponent;
Operation : TOperation); override;
{new virtual methods}
procedure teClear; virtual;
procedure teClearAll; virtual;
procedure teSendChar (aCh : char; aCanEcho : boolean; {!!.04}
CharSource : TAdCharSource ); virtual; {!!.04}
{Cursor Movement Methods}
procedure teHandleCursorMovement (Sender : TObject;
Row : Integer;
Col : Integer);
{ Command methods }
procedure teClearCommandList; {!!.04}
procedure teProcessCommand (Command : TAdEmuCommand; {!!.04}
Params : TAdEmuCommandParams); {!!.04}
procedure teProcessCommandList (CommandList : TAdEmuCommandList);{!!.04}
property TerminalBuffer : TAdTerminalBuffer {!!.04}
read FTerminalBuffer write FTerminalBuffer; {!!.04}
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
procedure BlinkPaint(aVisible : boolean); virtual;
procedure ExecuteTerminalCommands (CommandList : TAdEmuCommandList);{!!.04}
function HasBlinkingText : boolean; virtual;
procedure KeyDown(var Key : word; Shift: TShiftState); virtual;
procedure KeyPress(var Key : AnsiChar); virtual;
procedure LazyPaint; virtual;
procedure Paint; virtual;
procedure ProcessBlock(aData : pointer; aDataLen : longint; {!!.04}
CharSource : TAdCharSource); virtual; {!!.04}
procedure GetCursorPos(var aRow, aCol : Integer); virtual;
property Answerback : string {!!.06}
read FAnswerback write FAnswerback; {!!.06}
{read-only properties for low-level objects}
property Buffer : TAdTerminalBuffer
read FTerminalBuffer;
property CharSetMapping : TAdCharSetMapping
read FCharSetMapping;
property KeyboardMapping : TAdKeyboardMapping
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -