亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? emulvt.pas

?? Delphi 網絡通信協議代碼,是多種網絡協議的實現代碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

unit Emulvt;

{$B-}    { Partial boolean evaluation }

interface

{$DEFINE SINGLE_CHAR_PAINT}
{$DEFINE CHAR_ZOOM}

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ClipBrd;

const
  EmulVTVersion      = 212;
  CopyRight : String = 'TEmulVT';
  MAX_ROW            = 50;
  MAX_COL            = 132;
  TopMargin          = 0;
  LeftMargin         = 0;
  RightMargin        = 0;
  BottomMargin       = 0;
  NumPaletteEntries  = 16;

type
  TBackColors     = (vtsBlack, vtsRed,     vtsGreen, vtsYellow,
                     vtsBlue,  vtsMagenta, vtsCyan,  vtsWhite);

  TScreenOption   = (vtoBackColor, vtoCopyBackOnClear);
  TScreenOptions  = set of TScreenOption;
  TXlatTable      = array [0..255] of char;
  PXlatTable      = ^TXlatTable;
  TFuncKeyValue   = String[50];
  PFuncKeyValue   = ^TFuncKeyValue;
  TFuncKey        = record
                        ScanCode : Char;
                        Shift    : TShiftState;
                        Ext      : Boolean;
                        Value    : TFuncKeyValue;
                    end;
  TFuncKeysTable  = array [0..63] of TFuncKey;
  PFuncKeysTable  = ^TFuncKeysTable;
  TKeyBufferEvent = procedure (Sender : TObject; Buffer : PChar; Len : Integer) of object;
  TKeyDownEvent   = procedure (Sender        : TObject;
                               var VirtKey   : Integer;
                               var Shift     : TShiftState;
                               var ShiftLock : Boolean;
                               var ScanCode  : Char;
                               var Ext       : Boolean) of object;


type
  { TLine is an object used to hold one line of text on screen }
  TLine = class(TObject)
  public
    Txt : array [0..MAX_COL] of char;
    Att : array [0..MAX_COL] of Byte;
    constructor Create;
    procedure   Clear(Attr : Byte);
  end;
  TLineArray      = array [0..16382] of TLine;
  PLineArray      = ^TLineArray;

  { TScreen is an object to hold an entire screen of line and handle }
  { Ansi escape sequences to update this virtual screen              }
  TScreen = class(TObject)
  public
    FLines           : PLineArray;
    FRow             : Integer;
    FCol             : Integer;
    FRowSaved        : Integer;
    FColSaved        : Integer;
    FScrollRowTop    : Integer;
    FScrollRowBottom : Integer;
    FAttribute       : Byte;
    FForceHighBit    : Boolean;
    FReverseVideo    : Boolean;
    FUnderLine       : Boolean;
    FRowCount        : Integer;
    FColCount        : Integer;
    FBackRowCount    : Integer;
    FBackEndRow      : Integer;
    FBackColor       : TBackColors;
    FOptions         : TScreenOptions;
    FEscBuffer       : String[80];
    FEscFlag         : Boolean;
    Focused          : Boolean;
    FAutoLF          : Boolean;
    FAutoCR          : Boolean;
    FAutoWrap        : Boolean;
    FCursorOff       : Boolean;
    FCKeyMode        : Boolean;
    FNoXlat          : Boolean;
    FNoXlatInitial   : Boolean;
    FCntLiteral      : Integer;
    FCarbonMode      : Boolean;
    FXlatInputTable  : PXlatTable;
    FXlatOutputTable : PXlatTable;
    FCharSetG0       : Char;
    FCharSetG1       : Char;
    FCharSetG2       : Char;
    FCharSetG3       : Char;
    FAllInvalid      : Boolean;
    FInvRect         : TRect;
    FOnCursorVisible : TNotifyEvent;
    constructor Create;
    destructor  Destroy; override;
    procedure   AdjustFLines(NewCount : Integer);
    procedure   CopyScreenToBack;
    procedure   SetRowCount(NewCount : Integer);
    procedure   SetBackRowCount(NewCount : Integer);
    procedure   InvRect(nRow, nCol : Integer);
    procedure   InvClear;
    procedure   SetLines(I : Integer; Value : TLine);
    function    GetLines(I : Integer) : TLine;
    procedure   WriteChar(Ch : Char);
    procedure   WriteStr(Str : String);
    function    ReadStr : String;
    procedure   GotoXY(X, Y : Integer);
    procedure   WriteLiteralChar(Ch : Char);
    procedure   ProcessEscape(EscCmd : Char);
    procedure   SetAttr(Att : Char);
    procedure   CursorRight;
    procedure   CursorLeft;
    procedure   CursorDown;
    procedure   CursorUp;
    procedure   CarriageReturn;
    procedure   ScrollUp;
    procedure   ScrollDown;
    procedure   ClearScreen;
    procedure   BackSpace;
    procedure   Eol;
    procedure   Eop;
    procedure   ProcessESC_D;                { Index                   }
    procedure   ProcessESC_M;                { Reverse index           }
    procedure   ProcessESC_E;                { Next line               }
    procedure   ProcessCSI_u;                { Restore Cursor          }
    procedure   ProcessCSI_I;                { Select IBM char set     }
    procedure   ProcessCSI_J;                { Clear the screen        }
    procedure   ProcessCSI_K;                { Erase to End of Line    }
    procedure   ProcessCSI_L;                { Insert Line             }
    procedure   ProcessCSI_M;                { Delete Line             }
    procedure   ProcessCSI_m_lc;             { Select Attributes       }
    procedure   ProcessCSI_n_lc;             { Cursor position report  }
    procedure   ProcessCSI_at;               { Insert character        }
    procedure   ProcessCSI_r_lc;             { Scrolling margins       }
    procedure   ProcessCSI_s_lc;             { Save cursor location    }
    procedure   ProcessCSI_u_lc;             { Restore cursor location }
    procedure   ProcessCSI_7;                { Save cursor location    }
    procedure   ProcessCSI_8;                { Restore cursor location }
    procedure   ProcessCSI_H;                { Set Cursor Position     }
    procedure   ProcessCSI_h_lc;             { Terminal mode set       }
    procedure   ProcessCSI_l_lc;             { Terminal mode reset     }
    procedure   ProcessCSI_A;                { Cursor Up               }
    procedure   ProcessCSI_B;                { Cursor Down             }
    procedure   ProcessCSI_C;                { Cursor Right            }
    procedure   ProcessCSI_D;                { Cursor Left             }
    procedure   ProcessCSI_P;                { Delete Character        }
    procedure   ProcessCSI_S;                { Scroll up               }
    procedure   ProcessCSI_T;                { Scroll down             }
    procedure   process_charset_G0(EscCmd : Char);{ G0 character set   }
    procedure   process_charset_G1(EscCmd : Char);{ G1 character set   }
    procedure   process_charset_G2(EscCmd : Char);{ G2 character set   }
    procedure   process_charset_G3(EscCmd : Char);{ G3 character set   }
    procedure   UnimplementedEscape(EscCmd : Char);
    procedure   InvalidEscape(EscCmd : Char);
    function    GetEscapeParam(From : Integer; var Value : Integer) : Integer;
    property    OnCursorVisible : TNotifyEvent read  FonCursorVisible
                                               write FOnCursorVisible;
    property    Lines[I : Integer] : TLine read GetLines write SetLines;
  end;

  { TCustomEmulVT is an visual component wich does the actual display }
  { of a TScreen object wich is the virtual screen                    }
  { No property is published. See TEmulVT class                       }
  TCustomEmulVT = class(TCustomControl)
  private
    FScreen          : TScreen;
    FFileHandle      : TextFile;
    FCursorVisible   : Boolean;
    FCaretShown      : Boolean;
    FCaretCreated    : Boolean;
    FLineHeight      : Integer;
    FLineZoom        : Single;
    FCharWidth       : Integer;
    FCharZoom        : Single;
    FGraphicDraw     : Boolean;
    FInternalLeading : Integer;
    FBorderStyle     : TBorderStyle;
    FBorderWidth     : Integer;
    FAutoRepaint     : Boolean;
    FFont            : TFont;
    FVScrollBar      : TScrollBar;
    FTopLine         : Integer;
    FLocalEcho       : Boolean;
    FOnKeyBuffer     : TKeyBufferEvent;
    FOnKeyDown       : TKeyDownEvent;
    FFKeys           : Integer;
    FMonoChrome      : Boolean;
    FLog             : Boolean;
    FAppOnMessage    : TMessageEvent;
    FFlagCirconflexe : Boolean;
    FFlagTrema       : Boolean;
    FSelectRect      : TRect;
    FPal             : HPalette;
    FPaletteEntries  : array[0..NumPaletteEntries - 1] of TPaletteEntry;
    procedure   WMPaint(var Message: TWMPaint); message WM_PAINT;
    procedure   WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
    procedure   WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
    procedure   WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
    procedure   WMPaletteChanged(var Message : TMessage); message WM_PALETTECHANGED;
    procedure   VScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
    procedure   SetCaret;
    procedure   AdjustScrollBar;
    procedure   KeyPress(var Key: Char); override;
    function    ProcessFKeys(ScanCode: Char; Shift: TShiftState; Ext: Boolean) : Boolean;
    function    FindFKeys(ScanCode: Char; Shift: TShiftState;
                          Ext: Boolean) : PFuncKeyValue;
    procedure   CursorVisibleEvent(Sender : TObject);
    procedure   SetFont(Value : TFont);
    procedure   SetAutoLF(Value : Boolean);
    procedure   SetAutoCR(Value : Boolean);
    procedure   SetXlat(Value : Boolean);
    procedure   SetLog(Value : Boolean);
    procedure   SetRows(Value : Integer);
    procedure   SetCols(Value : Integer);
    procedure   SetBackRows(Value : Integer);
    procedure   SetTopLine(Value : Integer);
    procedure   SetBackColor(Value : TBackColors);
    procedure   SetOptions(Value : TScreenOptions);
    procedure   SetLineHeight(Value : Integer);
    function    GetAutoLF : Boolean;
    function    GetAutoCR : Boolean;
    function    GetXlat : Boolean;
    function    GetRows : Integer;
    function    GetCols : Integer;
    function    GetBackRows : Integer;
    function    GetBackColor : TBackColors;
    function    GetOptions : TScreenOptions;
  protected
    procedure   AppMessageHandler(var Msg: TMsg; var Handled: Boolean);
    procedure   DoKeyBuffer(Buffer : PChar; Len : Integer); virtual;
    procedure   PaintGraphicChar(DC   : HDC;
                                 X, Y : Integer;
                                 rc   : PRect;
                                 ch   : Char);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   ShowCursor;
    procedure   SetCursor(Row, Col : Integer);
    procedure   WriteChar(Ch : Char);
    procedure   WriteStr(Str : String);
    procedure   WriteBuffer(Buffer : Pointer; Len : Integer);
    function    ReadStr : String;
    procedure   CopyHostScreen;
    procedure   Clear;
    procedure   UpdateScreen;
    function    SnapPixelToRow(Y : Integer) : Integer;
    function    SnapPixelToCol(X : Integer) : Integer;
    function    PixelToRow(Y : Integer) : Integer;
    function    PixelToCol(X : Integer) : Integer;
    procedure   MouseToCell(X, Y: Integer; var ACol, ARow: Longint);
    procedure   SetLineZoom(newValue : Single);
    procedure   SetCharWidth(newValue : Integer);
    procedure   SetCharZoom(newValue : Single);
    property    LineZoom  : Single        read FLineZoom    write SetLineZoom;
    property    CharWidth : Integer       read FCharWidth   write SetCharWidth;
    property    CharZoom  : Single        read FCharZoom    write SetCharZoom;
    property    GraphicDraw : Boolean     read FGraphicDraw write FGraphicDraw;
    property    TopLine     : Integer     read FTopLine     write SetTopLine;
    property    VScrollBar  : TScrollBar  read FVScrollBar;
  private
    procedure   PaintOneLine(DC: HDC; Y, Y1 : Integer; const Line : TLine;
                             nColFrom : Integer; nColTo : Integer);
    procedure   SetupFont;
    property Text : String read ReadStr write WriteStr;
    property OnMouseMove;
    property OnMouseDown;
    property OnMouseUp;
    property OnClick;
    property OnKeyPress;
    property OnKeyBuffer : TKeyBufferEvent read FOnKeyBuffer write FOnKeyBuffer;
    property OnKeyDown   : TKeyDownEvent   read FOnKeyDown   write FOnKeyDown;
    property Ctl3D;
    property Align;
    property TabStop;
    property TabOrder;
    property BorderStyle: TBorderStyle read FBorderStyle write FBorderStyle;
    property AutoRepaint : Boolean     read FAutoRepaint write FAutoRepaint;
    property Font : TFont              read FFont        write SetFont;
    property LocalEcho : Boolean       read FLocalEcho   write FLocalEcho;
    property AutoLF : Boolean          read GetAutoLF    write SetAutoLF;
    property AutoCR : Boolean          read GetAutoCR    write SetAutoCR;
    property Xlat : Boolean            read GetXlat      write SetXlat;
    property MonoChrome : Boolean      read FMonoChrome  write FMonoChrome;
    property Log : Boolean             read FLog         write SetLog;
    property Rows : Integer            read GetRows      write SetRows;
    property Cols : Integer            read GetCols      write SetCols;
    property LineHeight : Integer      read FLineHeight  write SetLineHeight;
    property FKeys : Integer           read FFKeys       write FFKeys;
    property SelectRect : TRect        read FSelectRect  write FSelectRect;
    property BackRows : Integer        read GetBackRows  write SetBackRows;
    property BackColor : TBackColors   read GetBackColor write SetBackColor;
    property Options : TScreenOptions  read GetOptions   write SetOptions;
  end;

  { Same as TCustomEmulVT, but with published properties }
  TEmulVT = class(TCustomEmulVT)
  public
    property Screen : TScreen read FScreen;
    property SelectRect;
    property Text;
  published
    property OnMouseMove;
    property OnMouseDown;
    property OnMouseUp;
    property OnClick;
    property OnKeyPress;
    property OnKeyDown;
    property OnKeyBuffer;
    property Ctl3D;
    property Align;
    property BorderStyle;
    property AutoRepaint;
    property Font;
    property LocalEcho;
    property AutoLF;
    property AutoCR;
    property Xlat;
    property MonoChrome;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久理论电影网| 精品午夜一区二区三区在线观看| 亚洲va欧美va人人爽| 久久国产视频网| 91色.com| 国产欧美日韩综合精品一区二区| 天使萌一区二区三区免费观看| 国产乱理伦片在线观看夜一区| 欧美日韩综合一区| 中文字幕一区二区不卡| 理论片日本一区| 欧美私模裸体表演在线观看| 国产日韩欧美a| 激情综合五月婷婷| 日韩一区二区在线看片| 亚洲欧美另类图片小说| 国产乱理伦片在线观看夜一区 | 午夜精品久久久久久久久久久 | 欧美视频一二三区| 中文字幕一区av| 国产suv精品一区二区6| 日韩一区二区麻豆国产| 五月婷婷久久丁香| 91丨porny丨户外露出| 国产欧美视频一区二区三区| 激情综合亚洲精品| 日韩一区二区在线播放| 香蕉加勒比综合久久| 色美美综合视频| 亚洲婷婷国产精品电影人久久| 成人综合在线观看| 欧美高清在线视频| 成人三级伦理片| 国产欧美日韩激情| 成人av网站在线| 国产精品成人免费精品自在线观看| 国产精品一区不卡| 国产日韩一级二级三级| 成人黄色在线网站| 成人免费在线视频| 欧美中文字幕一区二区三区 | 91福利区一区二区三区| 亚洲欧洲综合另类| 欧美视频一区二区在线观看| 亚洲1区2区3区视频| 欧美一区二区三区系列电影| 蓝色福利精品导航| 久久久91精品国产一区二区精品| 国内外精品视频| 国产精品天天看| 99久久精品免费看国产| 一区二区欧美国产| 91精品国产一区二区三区| 欧美aa在线视频| 日本一区二区三区在线观看| 色香色香欲天天天影视综合网| 亚洲精品成人精品456| 欧美精品丝袜中出| 国内精品国产三级国产a久久 | 成人av中文字幕| 亚洲男人电影天堂| 欧美一区二区视频网站| 国产盗摄视频一区二区三区| 最新国产成人在线观看| 欧美夫妻性生活| 丁香另类激情小说| 图片区小说区区亚洲影院| 久久久国产一区二区三区四区小说| youjizz国产精品| 午夜精品123| 国产精品久久久久影院亚瑟 | 久久久亚洲国产美女国产盗摄| 成人精品免费看| 日韩国产一二三区| 国产精品久久久久久久久免费樱桃 | 欧美三级一区二区| 国产精品2024| 亚洲超碰精品一区二区| 中文字幕乱码一区二区免费| 欧美日韩大陆在线| 成人激情午夜影院| 麻豆精品在线看| 亚洲一区在线观看网站| 国产亚洲人成网站| 91精品一区二区三区久久久久久| 99久久伊人精品| 国产成人亚洲综合a∨婷婷| 天天做天天摸天天爽国产一区| 中文字幕一区日韩精品欧美| 日韩女同互慰一区二区| 欧美绝品在线观看成人午夜影视| 国产成人av网站| 蜜桃免费网站一区二区三区| 亚洲小少妇裸体bbw| 国产精品久久777777| 久久综合九色综合97_久久久| 欧美性高清videossexo| 91在线视频免费91| 不卡一区在线观看| 国产精品一区专区| 免费成人小视频| 日日夜夜精品视频天天综合网| 一区二区三区四区蜜桃| 中文字幕制服丝袜成人av| 久久久精品综合| 久久精品亚洲精品国产欧美kt∨| 日韩一区二区在线看| 欧美精品第1页| 91精品国产91久久综合桃花| 色综合色狠狠综合色| 97精品视频在线观看自产线路二| 高潮精品一区videoshd| 成人精品一区二区三区四区 | 欧美日韩高清一区二区| 欧美日韩综合在线| 欧美日韩精品免费| 欧美一区二区三区免费在线看 | 91麻豆精品国产91久久久久| 欧美日韩精品一区二区三区四区 | 日韩手机在线导航| 日韩一区二区精品葵司在线| 精品三级av在线| 久久久精品免费免费| 欧美国产日韩亚洲一区| 中文字幕亚洲欧美在线不卡| 自拍偷拍亚洲欧美日韩| 亚洲国产一二三| 免费观看久久久4p| 国产乱人伦精品一区二区在线观看| 国产裸体歌舞团一区二区| 国产91精品在线观看| av电影在线观看完整版一区二区| 色av一区二区| 欧美一级欧美三级| 精品国产凹凸成av人导航| 国产欧美日韩另类一区| 最新热久久免费视频| 亚洲成人www| 国产成人一级电影| 欧美中文字幕不卡| 欧美videossexotv100| 亚洲国产精品精华液2区45| 亚洲免费在线看| 日本强好片久久久久久aaa| 韩国三级中文字幕hd久久精品| 99精品欧美一区二区三区小说| 欧美日韩在线播放三区四区| 欧美sm极限捆绑bd| 亚洲欧美另类图片小说| 久久99热99| 91蜜桃免费观看视频| 日韩精品自拍偷拍| 日韩美女视频一区| 日韩成人精品视频| av不卡一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 久久久精品国产免大香伊| 一区二区三区欧美亚洲| 久久99久久精品| 在线观看欧美黄色| 久久亚洲精华国产精华液| 亚洲精品国产视频| 国产在线国偷精品免费看| 欧美制服丝袜第一页| 日本一区二区动态图| 日欧美一区二区| 91久久精品网| 日本一区二区三区久久久久久久久不| 一区二区三区蜜桃网| 粉嫩高潮美女一区二区三区| 91精品国产欧美一区二区| 亚洲摸摸操操av| 粉嫩13p一区二区三区| 91精品国产色综合久久久蜜香臀| 1区2区3区欧美| 国产不卡免费视频| 精品久久久久久久一区二区蜜臀| 亚洲午夜一区二区| 91蜜桃网址入口| 国产精品美女久久久久久2018 | 人人精品人人爱| 欧美吻胸吃奶大尺度电影| 日韩久久一区二区| 国产suv精品一区二区三区| 精品欧美久久久| 日本三级韩国三级欧美三级| 欧美精品久久99久久在免费线| 亚洲黄色小说网站| 色综合视频在线观看| 亚洲欧美一区二区不卡| gogo大胆日本视频一区| 中文字幕av一区二区三区免费看| 精品一区二区国语对白| 日韩视频123| 久久99精品久久久久久| 日韩午夜三级在线| 久久99国产精品麻豆| 欧美va亚洲va在线观看蝴蝶网| 人人精品人人爱| 精品91自产拍在线观看一区|