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

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

?? myedit2.pas

?? delphi LED 顯示屏用,帶串口發送,內容編輯,演示功能
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
unit myedit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TC32EventState = (evBreak, evCTS, evDSR, evError, evRing,
    evRlsd, evRxChar, evRxFlag, evTxEmpty);
  TC32EventType = set of TC32EventState;

  TBaudRate = (cbr110, cbr300, cbr600, cbr1200, cbr2400, cbr4800,
               cbr9600, cbr14400, cbr19200, cbr38400, cbr56000,
               cbr57600, cbr115200, cbr128000, cbr256000);
  TParity = (paNone, paOdd, paEven, paMark, paSpace);
  TStopbits = (sb10, sb15, sb20);
  TFlowControl = (fcNone, fcCTS, fcDTR, fcSoftware, fcDefault);

  TComm32Option = (osParityCheck, osDsrSensitivity, osIgnoreXOff,
                osErrorChar, osNullStrip);
  TComm32Options = set of TComm32Option;

type tpinf=record
   color:array[0..30000] of longint;
   fontsize:array[0..30000] of integer;
   fontname:array[0..30000] of integer;
   fontstyle:array[0..30000] of integer;
end;

type sendinf=record
     sendred: array[0..255] of array[0..255] of byte;
     sendgreen: array[0..255] of array[0..255] of byte;
end;

type tpstrinf=record
    lineheight:integer;
    linebyte:integer;
    no:integer;
end;

type
  Tmyedit = class(TCustomControl)
  private
    Faddflag:boolean;
    Fplay: Boolean;
    Ftpcount:integer;
    Ftppos:longint;
    Ftxt:ansistring;
    Ftpbyte:integer;
    Ftprownum:integer;
    Fscale:integer;
    Fspace:integer;
    Fdataflag:boolean;
    fontname:Tstrings;
    Fselectbmpno:integer;

    FDeviceName: String;
    FBaudRate: TBaudRate;
    FParity: TParity;
    FStopbits: TStopbits;
    FDatabits: integer;
    FReadBufferSize: Integer;
    FWriteBufferSize: Integer;

    dispno,aleft,atop,awidth,aheight:integer;
    selectdot:integer;
    selectdotx,selectdoty:array[1..8] of integer;
    pushed:boolean;
    selectdispno:integer;
    startposx,startposy,pmouseposx,pmouseposy:integer;
    procedure setaddflag(Value: Boolean);
    procedure setplay(Value: Boolean);
    procedure settpbyte(Value: integer);
    procedure settprownum(Value: integer);
    procedure settxt(value:ansistring);
    procedure settpcount(Value: integer);
    procedure settppos(Value: integer);
    procedure Setselectbmpno(Value: integer);
    procedure setscale(Value: integer);
    procedure setspace(Value: integer);
    procedure setdataflag(Value: boolean);

    procedure SetBaudRate(Value: TBaudRate);
    procedure SetParity(Value: TParity);
    procedure SetStopbits(Value: TStopBits);
    procedure SetDatabits(Value: integer);
  protected
    FHandle: THandle;
    FWriteEvent: THandle;
    FCT: TComStat;
    FDCB: TDCB;
    FCommConfig: TCommConfig;
    FErrors: dword;
    FIOpending: Boolean;
    FWriteOS: TOverlapped;
    FMonitorEvents: TC32EventType;
    FOptions: TComm32Options;
    FXonChar: char;
    FXoffChar: char;

    hCloseEvent: THandle;
    HandlesToWaitFor: array[0..2] of THandle;
    dwHandleSignaled: DWORD;
    BytesTransferred: DWORD;
    Status: dword;
    OverlappedCommEvent: TOverlapped;

    myfont:TLogFont;
    sysfont:Tfont;
    bmp:Tbitmap;
    bmptemp:tbitmap;
    totalline:integer;
    procedure paint;override;
    procedure selseccursor(x,y:integer);
    procedure readselectdot(Index: Integer);
    procedure WMLButtonDown(var Msg: TWMLButtonDown); message WM_LBUTTONDOWN;
    procedure WMMouseMove(var Msg: TWMMouseMove); message WM_MOUSEMOVE;
    procedure WMLButtonUp(var Msg: TWMLButtonUp); message WM_LBUTTONUP;
    procedure readdata(Index: Integer);
    procedure Opencom;
    procedure readstatus;
    procedure Write(const Buf; Count: Integer);

  public

    tptotal:integer;
    tpdata: tpinf;
    tpstr:array[0..5000] of tpstrinf;
    paramtext:ansistring;
    senddata:sendinf;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Clear;
    procedure change;
    procedure writestr;
    procedure readdot(pageno:integer);
    procedure readkkdot(pageno:integer);
    function  readasc(pageno:integer):string; overload;
    function  readasc:string; overload;
    function  readcolor(pageno:integer):string; overload;
    function  readcolor:string; overload;
    function  dotinrect(x,y,x1,y1,x2,y2:integer):boolean;
    procedure addimage(const S: string);
    procedure insertpara(startpos,len,totallen,colorvalue,sizevalue,namevalue,stylevalue:longint);
    procedure deletepara(startpos,len,totallen:longint);
    procedure movepara(startpos,len,endpos,fontcolor,fontsize,fontname,stylevalue:longint);
    procedure changepara(startpos,selectlen,klen,k,fontcolor,fontsize,fontname,stylevalue:longint);
    procedure addstyle(startpos,endpos,value:integer);
    procedure subbstyle(startpos,endpos,value:integer);
    procedure changestyle(startpos,endpos,value:integer);
    procedure Clearimage;
    function GetimageCount: Integer;
    function Getimage(Index: Integer): string;
    procedure Insertimage(Index: Integer; const S: string);
    procedure deleteimage(Index: Integer);
    function GetCells(ACol, ARow: Integer): string;
    procedure SetCells(ACol, ARow: Integer; const Value: string);
    procedure senddatetime;
    procedure sendbyte(Bufbyte: byte);
    procedure initcom(comstr:string);
    procedure close;
  published
      property DeviceName: string read FDeviceName write FDeviceName;
      property BaudRate: TBaudRate read FBaudRate write SetBaudRate default cbr9600;
      property Parity: TParity read FParity write SetParity default paNone;
      property Stopbits: TStopbits read FStopbits write SetStopbits default sb10;
      property Databits: integer read FDatabits write SetDatabits default 8;
      property ReadBufferSize: Integer read FReadBufferSize write FReadBufferSize default 4096;
      property WriteBufferSize: Integer read FWriteBufferSize write FWriteBufferSize default 2048;

     property addflag:boolean read Faddflag write setaddflag;
     property Play:boolean read Fplay write setplay;
     property Dataflag:boolean read Fdataflag write setdataflag;
     property  Tpbyte:integer read Ftpbyte write settpbyte;
     property  Tprownum:integer read Ftprownum write settprownum;
     property  Scale:integer read Fscale write setscale;
     property  Space:integer read Fspace write setspace;
     property Tpcount:integer read Ftpcount write settpcount;
     property Tppos:longint read Ftppos write settppos;
     property Txt:ansistring read Ftxt write settxt;
     property Selectbmpno:integer read Fselectbmpno write Setselectbmpno;
     property Color;
     property Font;
     property canvas;
     property visible;
     property OnClick;
     property OnDblClick;
     property Onkeyup;
     property Onkeypress;
     property Onkeydown;
     property Onmouseup;
     property Onmousemove;
     property Onmousedown;
     property OnDragDrop;
     property OnDragOver;
     property OnEndDock;
     property OnEndDrag;
  end;

const
   bmm:array[0..7] of byte=($80,$40,$20,$10,8,4,2,1);
   SCREENCOLOR:array[0..2] of int64=($ff,$ff00,$ffff);
  fBinary           = $00000001;
  fParity           = $00000002;
  fOutxCtsFlow      = $00000004;
  fOutxDsrFlow      = $00000008;
  fDtrControl       = $00000030;
  fDsrSensitivity   = $00000040;
  fTXContinueOnXoff = $00000080;
  fOutX             = $00000100;
  fInX              = $00000200;
  fErrorChar        = $00000400;
  fNull             = $00000800;
  fRtsControl       = $00003000;
  fAbortOnError     = $00004000;
  fDummy2           = $FFFF8000;

  CBR: array[TBaudRate] of Integer =
    (CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600,
     CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_57600, CBR_115200,
     CBR_128000, CBR_256000);

  PAR: array[TParity] of Integer =
    (NOPARITY, ODDPARITY, EVENPARITY, MARKPARITY, SPACEPARITY);

  STB: array[TStopbits] of Integer =
    (ONESTOPBIT, ONE5STOPBITS, TWOSTOPBITS);

  OPT: array[TComm32Option] of Integer =
   (fParity, fDsrSensitivity, fTXContinueOnXoff, fErrorChar, fNull);
 EvList: array[TC32EventState] of dword = (EV_BREAK, EV_CTS, EV_DSR, EV_ERR,
    EV_RING, EV_RLSD, EV_RXCHAR, EV_RXFLAG, EV_TXEMPTY);

procedure Register;

implementation

constructor Tmyedit.Create(AOwner: TComponent);
var
    i:integer;
begin
    inherited Create(AOwner);
    Width := 256;
    Height := 256;
    ControlStyle := ControlStyle - [csOpaque];
    color:=clBlack;
    Ftxt:='';
    paramtext:='';
    Ftpcount:=0;
    Ftppos:=0;
    Ftpbyte:=32;
    Ftprownum:=16;
    Fscale:=1;
    totalline:=0;
    tptotal:=0;
    Faddflag:=false;
    Fplay:=false;
    Fdataflag:=false;
    Fselectbmpno:=-1;
    tpstr[0].no:=0;
    fontname:=screen.Fonts;
    for i:=0 to 30000 do
    begin
        tpdata.color[i]:=0;
        tpdata.fontsize[i]:=12;
        tpdata.fontname[i]:=fontname.Count-1;
        tpdata.fontstyle[i]:=0;
    end;
    bmp:=Tbitmap.Create;
    bmptemp:=Tbitmap.Create;
    FHandle := INVALID_HANDLE_VALUE;
    FDeviceName := 'COM2';
    FBaudRate := cbr9600;
    FParity := paNone;
    FStopbits := sb10;
    FDatabits := 8;
    FXonChar := #17;
    FXoffChar := #19;
    FOptions := [];
    FMonitorEvents := [evBreak, evCTS, evDSR, evError, evRing,
                     evRlsd, evRxChar, evRxFlag, evTxEmpty];
    FReadBufferSize := 4096;
    FWriteBufferSize := 2048;

     sysfont:=Tfont.Create;
     sysfont.Assign(font);
     myfont.lfCharSet:=GB2312_CHARSET;
     myfont.lfEscapement:=0;
     myfont.lfOrientation:=0;
end;

destructor Tmyedit.Destroy;
begin
    sysfont.Free;
    bmp.Free;
    bmptemp.Free;
    inherited Destroy;
end;

procedure Tmyedit.Clear;
var
    i:integer;
begin
    FSpace:=0;
    Ftxt:='';
    paramtext:='';
    Ftpcount:=0;
    Ftppos:=0;
    totalline:=0;
    tptotal:=0;
    Faddflag:=false;
    Fplay:=false;
    Fselectbmpno:=-1;
    tpstr[0].no:=0;
    for i:=0 to 30000 do
    begin
        tpdata.color[i]:=0;
        tpdata.fontsize[i]:=12;
        tpdata.fontname[i]:=fontname.Count-1;
        tpdata.fontstyle[i]:=0;
    end;
    Invalidate;
end;

procedure Tmyedit.settpbyte(Value: integer);
begin
    if Value <> Ftpbyte then
    begin
        Ftpbyte:=Value;
        width:=8*Ftpbyte*Fscale;
    end;
end;

procedure Tmyedit.settprownum(Value: integer);
begin
    if Value <> Ftprownum then
    begin
        Ftprownum:=Value;
        height:=16*Ftprownum*Fscale;
    end;
end;

procedure Tmyedit.setscale(Value: integer);
begin
    if Value <> Fscale then
    begin
        Fscale:=Value;
        width:=8*Ftpbyte*Fscale;
        height:=16*Ftprownum*Fscale;
    end;
end;

procedure Tmyedit.setspace(Value: integer);
begin
    if Value <> Fspace then
    begin
        Fspace:=Value;
    end;
end;

procedure Tmyedit.setplay(Value: Boolean);
begin
    if Value <> Fplay then
    begin
        Fplay:=Value;
        Invalidate;
    end;
end;

procedure Tmyedit.setaddflag(Value: Boolean);
begin
    if Value <> Faddflag then
    begin
        Faddflag:=Value;
        Invalidate;
    end;
end;

procedure Tmyedit.setdataflag(Value: Boolean);
begin
    if Value <> Fdataflag then
    begin
        Fdataflag:=Value;
        writestr;
        paint;
    end;
end;

procedure Tmyedit.Setselectbmpno(Value: integer);
begin
    if (Value <> Fselectbmpno) and (Value<getimagecount) and (Fplay=false) then
    begin
        Fselectbmpno:=Value;
        Invalidate;
    end;
end;

procedure Tmyedit.change;
begin
    if (Ftpcount=0) and (Ftxt<>'') then Ftpcount:=1;
    paint;
end;

procedure Tmyedit.settxt(value:ansistring);
begin
     if  Ftxt<>Value then
     begin
        Ftxt:=value;
     end;
end;

procedure Tmyedit.writestr;
var
   linewidth,lineheight,lineno,kw,kh:integer;
   i,j,klen,kk,k:longint;
   str1,str2:ansistring;
begin
     for i:=0 to 5000 do tpstr[i].no:=0;
     str1:=ftxt;
     klen:=length(str1);
     i:=0;
     kk:=0;
     kw:=0;
     lineno:=0;
     linewidth:=0;
     lineheight:=0;
     Canvas.Font:=font;
     while i<klen do
     begin
          kh:=(4*tpdata.fontsize[i]+1) div 3;
          if str1[i+1]=#13 then
          begin
               if lineheight<kh then lineheight:=kh;
               lineheight:=lineheight;
               tpstr[lineno].lineheight:=lineheight+Fspace;
               tpstr[lineno].linebyte:=i-kk+2;
               lineno:=lineno+1;
               linewidth:=0;
               lineheight:=0;
               i:=i+2;
               kk:=i;
          end
          else
          begin
               str2:=str1[i+1];
               k:=1;
               if str1[i+1]>#$80 then
               begin
                    k:=2;
                    str2:=str2+str1[i+2];
               end;
               kw:=k*kh div 2;
               linewidth:=linewidth+kw;
               if linewidth>8*Ftpbyte then
               begin
                    tpstr[lineno].linebyte:=i-kk;
                    tpstr[lineno].lineheight:=lineheight+Fspace;
                    lineno:=lineno+1;
                    kk:=i;
                    linewidth:=kw;
                    lineheight:=kh;
               end
               else
               begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区在线播放| 午夜精品福利久久久| 欧美一区二区精美| 久久99精品久久久久久国产越南| 亚洲一区二区三区四区不卡| 色域天天综合网| 亚洲一本大道在线| 在线播放欧美女士性生活| 青青草原综合久久大伊人精品优势| 欧美无砖专区一中文字| 日本欧美久久久久免费播放网| 欧美精品99久久久**| 久久成人免费日本黄色| 国产亚洲成av人在线观看导航| 大胆欧美人体老妇| 一级特黄大欧美久久久| 日韩一区二区麻豆国产| 国产乱子伦一区二区三区国色天香| 国产精品卡一卡二卡三| 91久久国产综合久久| 午夜激情一区二区| 91精品国产麻豆国产自产在线| 欧美在线观看一区二区| 久久一区二区三区四区| 成人免费黄色大片| 亚洲一区二区三区四区在线观看| 欧美日韩一区二区三区在线看| 蜜桃一区二区三区在线观看| 国产精品国产成人国产三级 | 欧美午夜一区二区三区免费大片| 日韩一区二区电影| 丁香婷婷深情五月亚洲| 亚洲免费在线电影| 日韩免费观看2025年上映的电影| 国产成人精品亚洲日本在线桃色 | 91久久一区二区| 免费高清在线一区| 亚洲欧美电影一区二区| 日韩一区和二区| 91免费看视频| 国产成人三级在线观看| 亚洲高清在线视频| 久久精品人人爽人人爽| 在线不卡中文字幕| 99久久精品免费看| 韩国欧美一区二区| 视频在线观看91| 亚洲美女在线国产| 中文字幕av一区二区三区| 91精品在线观看入口| 色狠狠综合天天综合综合| 国产精品18久久久久久久久| 亚洲va天堂va国产va久| 国产精品私房写真福利视频| 欧美大黄免费观看| 欧美精品一卡二卡| 欧洲一区在线观看| 色悠久久久久综合欧美99| 国产成人夜色高潮福利影视| 久久成人18免费观看| 丝袜美腿亚洲一区| 三级一区在线视频先锋 | 欧美日韩国产欧美日美国产精品| 成人亚洲精品久久久久软件| 蜜桃av一区二区| 天天综合色天天综合| 亚洲综合一区二区精品导航| 国产精品美女久久久久久久网站| 2020国产成人综合网| 欧美一级理论性理论a| 欧美裸体bbwbbwbbw| 91电影在线观看| 色视频一区二区| 在线视频亚洲一区| 色哟哟一区二区| 欧美中文字幕不卡| 欧美性大战久久久久久久| 91女厕偷拍女厕偷拍高清| 色婷婷综合久久久中文一区二区| 99在线精品一区二区三区| www.成人网.com| 91视频com| 在线视频国产一区| 欧美日韩久久不卡| 欧美丰满一区二区免费视频| 国产精品狼人久久影院观看方式| 久久久久久久久久久电影| 精品蜜桃在线看| 久久九九影视网| 国产精品天美传媒| 亚洲免费在线电影| 日韩中文欧美在线| 免费人成精品欧美精品| 国产美女av一区二区三区| 国产精品123区| 在线视频亚洲一区| 日韩欧美国产一区在线观看| 亚洲精品一区二区三区香蕉| 久久久美女毛片| 亚洲三级电影网站| 午夜在线电影亚洲一区| 久久精品国产77777蜜臀| 国产在线观看一区二区 | 99久久免费精品| 欧美午夜电影一区| 久久综合九色欧美综合狠狠| 国产精品久久久久久久浪潮网站| 亚洲理论在线观看| 日韩中文欧美在线| 岛国精品一区二区| 欧美视频第二页| 国产农村妇女毛片精品久久麻豆| 亚洲色图欧洲色图婷婷| 天天综合日日夜夜精品| 国产伦精品一区二区三区在线观看| 99精品视频一区二区三区| 7777精品伊人久久久大香线蕉的 | 视频在线观看一区| 国产91精品欧美| 欧美日产国产精品| 国产色婷婷亚洲99精品小说| 亚洲综合视频网| 成人夜色视频网站在线观看| 91.com视频| 1024国产精品| 精品写真视频在线观看| 色综合久久中文综合久久牛| 精品国产免费一区二区三区四区 | 欧美a级理论片| eeuss鲁片一区二区三区在线观看| 在线成人午夜影院| 亚洲免费伊人电影| 国产成人夜色高潮福利影视| 欧美精品一二三四| 国产精品久久久久久久久免费相片| 午夜国产精品一区| 99国产精品视频免费观看| 26uuu另类欧美| 肉肉av福利一精品导航| 91国产免费看| 国产精品成人网| 国产伦精品一区二区三区免费迷 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产亚洲精品bt天堂精选| 亚洲福利一区二区三区| 91色在线porny| 中文文精品字幕一区二区| 美腿丝袜亚洲三区| 欧美乱妇23p| 亚洲成人激情av| 色视频欧美一区二区三区| 国产精品毛片大码女人| 国产成人精品一区二区三区网站观看| 欧美电影一区二区三区| 亚洲丰满少妇videoshd| 日本韩国一区二区三区| 亚洲黄网站在线观看| 色狠狠色狠狠综合| 亚洲欧洲精品天堂一级| 国产mv日韩mv欧美| 中文无字幕一区二区三区 | 久久机这里只有精品| 欧美日韩国产123区| 亚洲国产视频一区二区| 在线视频一区二区三区| 一区二区三区国产精品| 色综合天天视频在线观看| 亚洲欧洲三级电影| 不卡的看片网站| 亚洲美女视频一区| 91福利国产精品| 亚洲成人一区在线| 欧美日韩一区二区不卡| 五月天亚洲精品| 欧美精品久久久久久久多人混战| 天天av天天翘天天综合网 | 亚洲国产综合视频在线观看| 色妞www精品视频| 一区二区激情视频| 欧美日韩国产欧美日美国产精品| 天天综合网天天综合色| 日韩一区二区三区av| 看国产成人h片视频| 久久久久久一二三区| 国产成a人亚洲| 亚洲美女在线一区| 91精品国产高清一区二区三区蜜臀 | 国产精品福利av| 日韩中文字幕区一区有砖一区| 欧美一区二区精品在线| 狠狠色综合播放一区二区| 国产日产精品1区| 91香蕉视频污在线| 男女性色大片免费观看一区二区 | 欧美日韩一区二区三区免费看| 亚洲成a人v欧美综合天堂| 日韩三级中文字幕| 粉嫩av一区二区三区粉嫩| 一区二区三区四区激情| 欧美一级高清片|