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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? emulvt.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 5 頁
字號(hào):
    if IOResult <> 0 then begin
        { File do not exist, create default one }
        FKeysToFile(FKeys, FName);
        Exit;
    end;

    for I := Low(FKeys) to High(FKeys) do begin
        with FKeys[I] do begin
            ScanCode := chr(0);
            Shift    := [];
            Ext      := FALSE;
            Value    := '';
            if not Eof(F) then begin
                { 71, ssNormal, TRUE, '\x1B[H' }
                ReadLn(F, S);
                J  := 1;
                T  := GetToken(S, J, ',');
                if (Length(T) > 0) and (T[1] <> ';') then begin
                    sc := xdigit2(@T[1]);
                    if sc <> 0 then begin
                        ScanCode := chr(sc);
                        Inc(J);
                        T := GetToken(S, J, ',');
                        Shift := StringToShiftState(T);
                        Inc(J);
                        T := GetToken(S, J, ',');
                        Ext := UpperCase(T) = 'TRUE';
                        Inc(J);
                        T := GetToken(S, J, '''');
                        Inc(J);
                        T := GetToken(S, J, '''');
                        Value := StringToFuncKeyValue(T);
                    end;
                end;
            end;
        end;
    end;
    CloseFile(F);
{$I+}
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure DebugString(Msg : String);
const
    Cnt : Integer = 0;
var
    Buf : String[20];
begin
{$IFDEF Debug}
    Cnt := Cnt + 1;
    Buf := IntToHex(Cnt, 4) + ' ' + #0;
    OutputDebugString(@Buf[1]);

{$IFNDEF WIN32}
    if Length(Msg) < High(Msg) then
        Msg[Length(Msg) + 1] := #0;
{$ENDIF}

    OutputDebugString(@Msg[1]);
{$ENDIF}
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{$IFNDEF WIN32}
procedure SetLength(var S: string; NewLength: Integer);
begin
    S[0] := chr(NewLength);
end;
{$ENDIF}


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TLine.Create;
begin
    inherited Create;
    FillChar(Txt, SizeOf(Txt), ' ');
    FillChar(Att, SizeOf(Att), Chr(F_WHITE));
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TLine.Clear(Attr : Byte);
begin
    FillChar(Txt, SizeOF(Txt), ' ');
    FillChar(Att, SizeOf(Att), Attr);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TScreen.Create;
begin
    inherited Create;
    FRowCount        := 0;
    FBackRowCount    := 0;
    FBackEndRow      := 0;
    FBackColor       := vtsWhite;
    FOptions         := [vtoBackColor];
    SetRowCount(25);
    FColCount        := 80;
    FRowSaved        := -1;
    FColSaved        := -1;
    FScrollRowTop    := 0;
    FScrollRowBottom := FRowCount - 1;
    FAttribute       := F_WHITE;
    InvClear;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TScreen.Destroy;
var
    nRow : Integer;
begin
    for nRow := 0 to FRowCount + FBackRowCount - 1 do
        FLines^[nRow].Free;
    FreeMem (FLines, (FRowCount + FBackRowCount) * SizeOf(TObject));
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.AdjustFLines(NewCount : Integer);
var
    NewLines        : PLineArray;
    CurrCount       : Integer;
    nRow            : Integer;
begin
    CurrCount := FRowCount + FBackRowCount;
    if  (NewCount <> CurrCount) and (NewCount > 0) then begin
        GetMem(NewLines, NewCount * SizeOf(TObject));
        if NewCount > CurrCount then begin
            if CurrCount <> 0 then
                Move(FLines^, NewLines^, CurrCount * SizeOf(TObject));
            for nRow := CurrCount to NewCount - 1 do
                NewLines^[nRow] := TLine.Create;
            if CurrCount <> 0 then
                FreeMem(FLines, CurrCount * SizeOf(TObject));
        end
        else begin
            Move (FLines^, NewLines^, NewCount * SizeOf(TObject));
            for nRow := NewCount to CurrCount - 1 do
                FLines^[nRow].Free;
            FreeMem(FLines, CurrCount * SizeOf(TObject));
        end;
        FLines := NewLines;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.SetRowCount(NewCount : Integer);
begin
    if NewCount <> FRowCount then begin
        AdjustFLines(NewCount + FBackRowCount);
        FRowCount := NewCount;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.SetBackRowCount(NewCount : Integer);
begin
    if NewCount <> FBackRowCount then begin
        AdjustFLines(FRowCount + NewCount);
        FBackRowCount := NewCount;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CopyScreenToBack;
{ Copies the current host screen into the scrollback buffer. }
var
    Temp : TLine;
    Row  : Integer;
    Pass : Integer;
    nCol : Integer;
begin
    if FBackRowCount >= FRowCount then begin
        Dec (FBackEndRow, FRowCount);
        if (0 - FBackEndRow) >= FBackRowCount then
            FBackEndRow := 1 - FBackRowCount;
        { We have to make  FRowCount  lines available at the head of the
          scrollback buffer.  These will come from the end of the scrollback
          buffer.  We'll make  FRowCount  passes through the scrollback buffer
          moving the available lines up to the top and the existing lines
          down a page at a time.
          Net result is that we only move each line once. }
        For Pass := 0 To FRowCount - 1 Do begin
            Row := FBackEndRow + Pass;
            Temp := Lines[Row];
            Inc (Row, FRowCount);
            While Row < 0 Do begin
                Lines[Row - FRowCount] := Lines[Row];
                Inc (Row, FRowCount);
            end;
            Lines[Row - FRowCount] := Temp;
        end;

        { Now, copy the host screen lines to the ons we made available. }
        For Row := 0 To FRowCount - 1 Do begin
            Move (Lines[Row].Txt, Lines[Row - FRowCount].Txt, FColCount);
            Move (Lines[Row].Att, Lines[Row - FRowCount].Att, FColCount);
            if vtoBackColor in FOptions then begin
                with Lines[Row - FRowCount] do begin
                    for nCol := 0 to FColCount - 1 do begin
                        Att[nCol] := Att[nCol] And $8F Or (Ord (FBackColor) shl 4);
                    end;
                end;
            end;
        end;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ScrollUp;
var
    Temp : TLine;
    Row  : Integer;
    nCol : Integer;
begin
    if FBackRowCount > 0 then begin
        if (0 - FBackEndRow) < (FBackRowCount - 1) then
            Dec (FBackEndRow);
        Temp := Lines[FBackEndRow];
        For Row := FBackEndRow + 1 To -1 Do begin
            Lines[Row - 1] := Lines[Row];
        end;
        Lines[-1] := Lines[FScrollRowTop];
            if vtoBackColor in FOptions then begin
                with Lines[-1] do begin
                    for nCol := 0 to FColCount - 1 do begin
                        Att[nCol] := Att[nCol] And $8F Or (Ord (FBackColor) shl 4);
                    end;
                end;
            end;

    end
    else
        Temp := Lines[FScrollRowTop];

    for Row := FScrollRowTop + 1 to FScrollRowBottom do
        Lines[Row - 1] := Lines[Row];
    Lines[FScrollRowBottom] := Temp;
    Temp.Clear(F_WHITE {FAttribute});
    FAllInvalid := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ScrollDown;
var
    Temp : TLine;
    Row  : Integer;
begin
    Temp := Lines[FScrollRowBottom];
    for Row := FScrollRowBottom DownTo FScrollRowTop + 1 do
        Lines[Row] := Lines[Row - 1];
    Lines[FScrollRowTop] := Temp;
    Temp.Clear(F_WHITE {FAttribute});
    FAllInvalid := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CursorDown;
begin
    Inc(FRow);
    if FRow > FScrollRowBottom then begin
        FRow := FScrollRowBottom;
        ScrollUp;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CursorUp;
begin
    Dec(FRow);
    if FRow < 0 then begin
        Inc(FRow);
        ScrollDown;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CursorRight;
begin
    Inc(FCol);
    if FCol >= FColCount then begin
        FCol := 0;
        CursorDown;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CursorLeft;
begin
    Dec(FCol);
    if FCol < 0 then begin
        FCol := FColCount - 1;
        CursorUp;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.CarriageReturn;
begin
    FCol := 0;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TScreen.GetEscapeParam(From : Integer; var Value : Integer) : Integer;
begin

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩女优电影在线观看| 丰满少妇在线播放bd日韩电影| jlzzjlzz亚洲日本少妇| 亚洲欧美偷拍三级| 欧美日韩在线播放三区| 日韩avvvv在线播放| 日韩精品在线一区二区| 国产精品一区二区免费不卡| 中文在线一区二区| 欧美视频在线观看一区| 美女视频一区二区三区| 国产欧美va欧美不卡在线| 一本高清dvd不卡在线观看| 一二三区精品视频| 欧美电视剧在线看免费| 成人黄页毛片网站| 午夜精品久久久久久久久久| 精品国产精品网麻豆系列| 99久久精品国产毛片| 婷婷久久综合九色国产成人| 2022国产精品视频| 91久久精品网| 国产一区二区三区| 亚洲一区二区精品久久av| 精品国产乱码91久久久久久网站| 99久久777色| 美女www一区二区| 亚洲色图20p| 精品国产凹凸成av人网站| 色综合一个色综合亚洲| 精品一区二区久久久| 日韩伦理电影网| 日韩精品一区二区三区在线观看| eeuss鲁一区二区三区| 日本成人中文字幕在线视频| 成人欧美一区二区三区在线播放| 欧美美女黄视频| av电影在线不卡| 精品无人码麻豆乱码1区2区| 一区二区三区在线视频免费观看| 欧美xxxxx裸体时装秀| 91福利在线观看| 成人免费毛片片v| 蜜桃精品在线观看| 一区二区三区在线视频观看58| 久久久久一区二区三区四区| 欧美精品色综合| 色婷婷精品大在线视频| 成人动漫精品一区二区| 国产精品亚洲午夜一区二区三区| 亚洲成人自拍网| 一区二区三区在线看| 中文欧美字幕免费| 国产亚洲综合色| 精品国产伦理网| 日韩欧美国产综合一区| 欧美日韩激情一区二区| 色综合色综合色综合| 本田岬高潮一区二区三区| 国产毛片精品视频| 精品一区二区三区免费视频| 日本免费新一区视频| 亚洲成a天堂v人片| 亚洲国产精品麻豆| 亚洲国产精品麻豆| 亚洲一区二区成人在线观看| 伊人色综合久久天天人手人婷| 亚洲欧洲av色图| 亚洲欧洲日产国码二区| 国产精品污污网站在线观看 | 麻豆91免费看| 亚州成人在线电影| 亚洲成av人片在www色猫咪| 亚洲一区二区在线观看视频| 一个色综合av| 婷婷激情综合网| 日本一区中文字幕| 久久精品国产精品青草| 国模娜娜一区二区三区| 国产精品99久久久久久有的能看 | 中文字幕第一页久久| 国产三级精品视频| 国产精品全国免费观看高清 | 1区2区3区欧美| 国产精品毛片高清在线完整版| 国产精品成人免费精品自在线观看| 亚洲国产精品精华液ab| 国产精品传媒入口麻豆| 亚洲精品视频在线| 亚洲一本大道在线| 奇米一区二区三区| 国产一区二区成人久久免费影院| 国产一区久久久| 成人黄色av电影| 色88888久久久久久影院野外| 欧美日韩大陆一区二区| 日韩欧美久久一区| 国产精品乱人伦一区二区| 夜夜嗨av一区二区三区网页 | 日本网站在线观看一区二区三区 | 国产精品久久久一本精品| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品第1页| 麻豆国产精品官网| 成人国产精品免费网站| 在线观看一区二区视频| 日韩欧美色综合| 中文字幕佐山爱一区二区免费| 亚洲妇女屁股眼交7| 九九精品一区二区| 一本色道久久综合亚洲精品按摩| 69堂国产成人免费视频| 国产亚洲精品7777| 五月天精品一区二区三区| 国产高清精品在线| 欧美日韩综合色| 国产清纯在线一区二区www| 亚洲一区二区视频在线| 国产不卡在线视频| 91精品国产高清一区二区三区| 欧美经典一区二区| 日韩高清不卡一区二区| 不卡大黄网站免费看| 欧美一级高清片在线观看| 亚洲欧洲99久久| 国产美女主播视频一区| 欧美日韩免费高清一区色橹橹 | 91精品久久久久久久久99蜜臂| 欧美激情中文字幕| 奇米四色…亚洲| 欧美在线观看一区| 中文字幕一区二区视频| 精品亚洲成a人在线观看| 欧美色图天堂网| 中文字幕制服丝袜成人av| 美女视频黄久久| 精品视频一区二区三区免费| 国产精品久久看| 国产精品一区二区果冻传媒| 欧美一级理论片| 亚洲国产中文字幕| 色婷婷久久一区二区三区麻豆| 欧美激情综合网| 国产精品一级片| 精品少妇一区二区三区视频免付费 | 久久国产日韩欧美精品| 欧美日韩二区三区| 亚洲国产中文字幕| 97精品久久久午夜一区二区三区| 2021国产精品久久精品| 美美哒免费高清在线观看视频一区二区| 在线亚洲人成电影网站色www| 国产精品日韩成人| 国产不卡高清在线观看视频| 久久久99精品久久| 国产精品99久| 国产色产综合产在线视频| 精品一区二区日韩| 欧美mv日韩mv| 国产美女精品人人做人人爽 | 91精品国产高清一区二区三区| 亚洲国产成人tv| 欧美自拍丝袜亚洲| 亚洲va韩国va欧美va精品| 欧美亚洲免费在线一区| 亚洲va欧美va人人爽| 欧美精品久久久久久久久老牛影院| 亚洲一区二区欧美激情| 欧美丰满一区二区免费视频| 日韩精品国产欧美| 欧美成人午夜电影| 国产一区视频在线看| 国产日本欧洲亚洲| 99久久99久久免费精品蜜臀| 一区二区三区精密机械公司| 欧美亚洲动漫制服丝袜| 婷婷成人激情在线网| 欧美成人三级在线| 丁香激情综合五月| 亚洲精品免费播放| 欧美一区二区三区在线视频| 韩国女主播成人在线观看| 中文一区在线播放| 欧洲一区二区三区免费视频| 日本视频中文字幕一区二区三区| 精品免费视频.| 成人国产精品视频| 亚洲va国产天堂va久久en| 欧美人xxxx| 国产精品自在在线| 亚洲精品欧美二区三区中文字幕| 欧美日产国产精品| 狠狠色丁香久久婷婷综合_中| 国产精品美女久久久久aⅴ| 在线观看欧美日本| 激情综合五月婷婷| 亚洲女同女同女同女同女同69| 欧美美女一区二区在线观看| 国产一区二区三区四区五区美女 | 久久久久9999亚洲精品|