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

📄 adtrmemu.pas

📁 Async Professional 4.04
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      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;
      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 CharSet [aRow, aCol : integer] : byte
                  read tmGetCharSet write tmSetCharSet;
      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 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
      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
      {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;

      {read-only properties for low-level objects}
      property Buffer : TAdTerminalBuffer
                  read FTerminalBuffer;
      property CharSetMapping : TAdCharSetMapping
                  read FCharSetMapping;
      property KeyboardMapping : TAdKeyboardMapping
                  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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -