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

📄 adtrmemu.pas

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