⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adtrmemu.pas

📁 测试用例
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      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 + -