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

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

?? main.~pas

?? Delphi版本的串口調試工具 我也是別人給我的
?? ~PAS
字號:
{*****************************************************************
*串口調試助手V1.0
*作    者:sky
*Email   : mastersky@21cn.com
*QQ      : 11116580
*版    本:V1.0
*編寫時間:2005/12/19
*說    明:本程序完全參照龔建偉VC版《串口調試助手V2.2》編寫而成。
           僅供學習測試之用。
******************************************************************}

unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, Spin, ExtCtrls, ImgList, CPort, CPortCtl,ShellApi,
  FileCtrl;

type
  TFrmMain = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Memo1: TMemo;
    cbsendHex: TCheckBox;
    cbAutoSend: TCheckBox;
    Label1: TLabel;
    SpinEdit1: TSpinEdit;
    Label2: TLabel;
    Button1: TButton;
    Panel4: TPanel;
    btnSend: TButton;
    Button3: TButton;
    Button4: TButton;
    edSendFile: TEdit;
    SpeedButton1: TSpeedButton;
    Memo2: TMemo;
    edStatus: TEdit;
    edRx: TEdit;
    edTx: TEdit;
    Button5: TButton;
    ImageList1: TImageList;
    BitBtn1: TBitBtn;
    GroupBox1: TGroupBox;
    ComComboBox1: TComComboBox;
    ComComboBox2: TComComboBox;
    ComComboBox3: TComComboBox;
    ComComboBox4: TComComboBox;
    ComComboBox5: TComComboBox;
    ComComboBox6: TComComboBox;
    ComPort: TComPort;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    ComLed1: TComLed;
    Label9: TLabel;
    ComLed2: TComLed;
    Label10: TLabel;
    ComLed3: TComLed;
    Label11: TLabel;
    btnSwitch: TButton;
    Panel5: TPanel;
    Button6: TButton;
    cbRecHex: TCheckBox;
    cbAutoClean: TCheckBox;
    btnStopShow: TButton;
    Button8: TButton;
    Button9: TButton;
    edPath: TEdit;
    BitBtn2: TBitBtn;
    Label12: TLabel;
    Label13: TLabel;
    Timer1: TTimer;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure SpeedButton1Click(Sender: TObject);
    procedure ComPortAfterOpen(Sender: TObject);
    procedure ComPortAfterClose(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure btnSwitchClick(Sender: TObject);
    procedure Label12Click(Sender: TObject);
    procedure Label13Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure cbAutoSendClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure btnStopShowClick(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
    procedure ComPortRxChar(Sender: TObject; Count: Integer);
    procedure BitBtn2Click(Sender: TObject);
  private
    FShowText:Boolean;
    FRXNum:Integer;
    FTXNum:Integer;
    procedure ShowRX;
    procedure ShowTX;
    procedure ShowStatus;
    procedure SendFile(const filename:string);
    procedure SendString(const str:string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation

const
  CWidth=713;
  CHeight=470;

{$R *.dfm}

procedure TFrmMain.SpeedButton1Click(Sender: TObject);
var
  B:TBitmap;
begin
  B:=TBitmap.Create;
  if Self.FormStyle=fsNormal then
  begin
    Self.FormStyle:=fsStayOnTop;
    SpeedButton1.Down:=True;

    if ImageList1.GetBitmap(1,B) then
    begin
      SpeedButton1.Glyph.Assign(B);
    end;
  end
  else if Self.FormStyle=fsStayOnTop then
  begin
    Self.FormStyle:=fsNormal;
    SpeedButton1.Down:=False;
    if ImageList1.GetBitmap(0,B) then
    begin
      SpeedButton1.Glyph.Assign(B);
    end;
  end;
  B.Free;
end;

procedure TFrmMain.ComPortAfterOpen(Sender: TObject);
begin
  btnSwitch.Caption:='關閉串口';
  ShowStatus;
end;

procedure TFrmMain.ComPortAfterClose(Sender: TObject);
begin
  btnSwitch.Caption:='打開串口';
  ShowStatus;
end;

procedure TFrmMain.FormResize(Sender: TObject);
begin
  if Height<CHeight then
    Height:=CHeight;
  if Width<CWidth then
    Width:=CWidth;
end;

procedure TFrmMain.btnSwitchClick(Sender: TObject);
begin
  if ComPort.Connected then
    ComPort.Close
  else ComPort.Open;
end;

procedure TFrmMain.Label12Click(Sender: TObject);
begin
  ShellExecute(0,'open','mailto: mastersky@21cn.com?subject=串口調試助手Delphi版',
               NIL, NIL, SW_SHOWNORMAL);
end;

procedure TFrmMain.Label13Click(Sender: TObject);
begin
  ShellExecute(0,'open','http://www.delphipages.cn',
               NIL, NIL, SW_SHOWNORMAL);
end;

procedure TFrmMain.BitBtn1Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmMain.Button6Click(Sender: TObject);
begin
  Memo1.Clear;
  if ComPort.Connected then
    ComPort.ClearBuffer(True,False);
end;

procedure TFrmMain.FormCreate(Sender: TObject);
begin
  FShowText:=True;
  FRXNum:=0;
  FTXNum:=0;
end;

procedure TFrmMain.ShowRX;
begin
  edRX.Text:='Rx:'+IntTostr(FRXNum);
end;

procedure TFrmMain.ShowStatus;
begin
  if ComPort.Connected then
  begin
    edStatus.Text:=Format('STATUS:%s Opend %s %s %s %s %s',[ComComboBox1.Text,
      ComComboBox2.Text,ComComboBox3.Text,ComComboBox4.Text,ComComboBox5.Text,
      ComComboBox6.Text]);
  end
  else edStatus.Text:='STATUS:COM Port Closed';
end;

procedure TFrmMain.ShowTX;
begin
  edTx.Text:='Tx:'+IntTostr(FTXNum);
end;

procedure TFrmMain.Button5Click(Sender: TObject);
begin
  FRXNum:=0;
  FTXNum:=0;
  ShowRX;
  ShowTX;
end;

procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ComPort.OnAfterClose:=nil;
end;

procedure TFrmMain.ComComboBox1Change(Sender: TObject);
begin
  ShowStatus;
end;

procedure TFrmMain.Button1Click(Sender: TObject);
begin
  Memo2.Clear;
end;

procedure TFrmMain.SpinEdit1Change(Sender: TObject);
begin
  Timer1.Interval:=SpinEdit1.Value;
end;

procedure TFrmMain.cbAutoSendClick(Sender: TObject);
begin
  Timer1.Enabled:=cbAutoSend.Checked;
end;

procedure TFrmMain.Timer1Timer(Sender: TObject);
begin
  if Memo2.Text<>'' then
    btnSend.Click;
end;

procedure TFrmMain.btnStopShowClick(Sender: TObject);
begin
  FShowText:=not FShowText;
  if FShowText then
    btnStopShow.Caption:='停止顯示'
  else btnStopShow.Caption:='繼續(xù)顯示';
end;

procedure TFrmMain.Button9Click(Sender: TObject);
var
  Dir: string;
begin
  Dir := edPath.Text;
  if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],0) then
    edPath.Text := Dir;
end;

function AddBackSlash(const S: string): string;
begin
  Result := S;
  if S<>'' then
  begin
    if Result[Length(Result)] <> '\' then
      Result := Result + '\';              
  end;
end;

procedure TFrmMain.Button8Click(Sender: TObject);
var
  S:string;
begin
  S:=AddBackSlash(edPath.Text);
  if not DirectoryExists(S) then
    CreateDir(S);
  S:=S+'Rec'+FormatDateTime('yymmddhhssnn',Now)+'.txt';
  Memo1.Lines.SaveToFile(S);
  ShowMessage(S+'已保存');
end;

procedure TFrmMain.Button3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    edSendFile.Text:=OpenDialog1.FileName;
end;

procedure TFrmMain.Button4Click(Sender: TObject);
begin
  if FileExists(edSendFile.Text) then
    SendFile(edSendFile.Text);
end;

procedure TFrmMain.SendFile(const filename: string);
var
  S:TStringList;
begin
  S:=TStringList.Create;
  try
    S.LoadFromFile(filename);
    SendString(S.Text);
  finally
    S.Free;
  end;
end;

function HexStrToStr(const S:string):string;
//16進制字符串轉換成字符串
var
  t:Integer;
  ts:string;
  M,Code:Integer;
begin
  t:=1;
  Result:='';
  while t<=Length(S) do
  begin
    while not (S[t] in ['0'..'9','A'..'F','a'..'f']) do
      inc(t);
    if (t+1>Length(S))or(not (S[t+1] in ['0'..'9','A'..'F','a'..'f'])) then
      ts:='$'+S[t]
    else
      ts:='$'+S[t]+S[t+1];
    Val(ts,M,Code);
    if Code=0 then
      Result:=Result+Chr(M);
    inc(t,2);
  end;
end;

procedure TFrmMain.btnSendClick(Sender: TObject);
begin
  if cbsendHex.Checked then
    SendString(HexStrToStr(Memo2.Text))
  else
    SendString(Memo2.Text);
end;

procedure TFrmMain.SendString(const str: string);
var
  obj:PAsync;
begin
  InitAsync(obj);
  try
    ComPort.WriteStrAsync(str,obj);
    ComPort.WaitForAsync(obj);
    FTXNum:=FTXNum+Length(str);
  finally
    DoneAsync(obj);
    ShowTX;
  end;
end;

function StrToHexStr(const S:string):string;
//字符串轉換成16進制字符串
var
  I:Integer;
begin
  for I:=1 to Length(S) do
  begin
    if I=1 then
      Result:=IntToHex(Ord(S[1]),2)
    else Result:=Result+' '+IntToHex(Ord(S[I]),2);
  end;
end;

procedure TFrmMain.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort.ReadStr(Str, Count);
  if FShowText then
  begin
    if cbRecHex.Checked then
      Memo1.Lines.Add(StrToHexStr(Str))
    else
      Memo1.Lines.Add(Str);
  end;
  FRXNum:=FRXNum+Count;
  ShowRX;
end;

procedure TFrmMain.BitBtn2Click(Sender: TObject);
begin
  ShellExecute(0,'open',PChar(ExtractFilePath(Application.ExeName)+'help.htm'),
               NIL, NIL, SW_SHOWNORMAL);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区三| 色激情天天射综合网| av中文字幕不卡| 欧美午夜精品久久久| 久久青草欧美一区二区三区| 国产精品色在线观看| 日韩1区2区3区| 99国产精品久久久久久久久久| 56国语精品自产拍在线观看| 国产精品美女久久久久久久| 日韩1区2区日韩1区2区| 在线亚洲欧美专区二区| 久久久久国产一区二区三区四区| 亚洲一区在线视频观看| eeuss国产一区二区三区| 欧美久久久久久久久久| 中文字幕中文在线不卡住| 国内偷窥港台综合视频在线播放| www一区二区| 亚洲香肠在线观看| 99精品视频在线观看| 国产亚洲va综合人人澡精品| 视频一区二区中文字幕| 在线亚洲精品福利网址导航| 中文字幕在线不卡国产视频| 国产一区二区精品在线观看| 91精品国产手机| 午夜激情一区二区三区| 色94色欧美sute亚洲线路一ni| 国产精品久久久久影视| 懂色av中文一区二区三区| 欧美精品一区二区三区一线天视频| 婷婷亚洲久悠悠色悠在线播放| 91麻豆自制传媒国产之光| 国产精品国产三级国产三级人妇| 激情文学综合丁香| 精品少妇一区二区三区| 精品一区二区在线免费观看| 欧美一区二区三区在线| 三级精品在线观看| 日韩欧美123| 日本vs亚洲vs韩国一区三区二区| 4438x成人网最大色成网站| 亚洲不卡在线观看| 欧美一区二区三区性视频| 天堂成人国产精品一区| 日韩午夜在线影院| 久久爱www久久做| 久久免费看少妇高潮| 国产精品69久久久久水密桃| 久久久久久久精| 国内精品免费**视频| 亚洲国产精品成人久久综合一区 | 国产成人免费视频| 国产欧美日本一区二区三区| 成人爽a毛片一区二区免费| 国产精品成人一区二区艾草| 91在线视频免费观看| 樱花影视一区二区| 日韩欧美国产三级| 国产经典欧美精品| 亚洲免费观看高清完整版在线观看| 91久久香蕉国产日韩欧美9色| 天天影视涩香欲综合网| 亚洲精品在线观看网站| 91麻豆国产福利精品| 日本aⅴ精品一区二区三区 | 在线看国产一区二区| 视频一区二区国产| 欧美国产精品一区| 欧美日韩精品欧美日韩精品| 国内精品久久久久影院色| 亚洲天堂a在线| 日韩视频免费观看高清完整版| 国产成人精品亚洲午夜麻豆| 亚洲综合一区二区| 久久九九久久九九| 欧美军同video69gay| 国产99一区视频免费| 亚洲成人免费影院| 国产精品午夜电影| 日韩一区二区三区三四区视频在线观看| 国产成人免费视频网站高清观看视频 | 日本精品一区二区三区高清| 天天综合色天天综合| 国产午夜亚洲精品午夜鲁丝片 | 成人免费在线观看入口| 91精品国产综合久久精品麻豆| 成人激情免费视频| 美女免费视频一区二区| 一区二区三区资源| 国产精品午夜在线观看| 欧美va在线播放| 欧美日韩激情在线| 91麻豆精东视频| 国产91精品入口| 久久精品国产**网站演员| 一卡二卡三卡日韩欧美| 中文字幕的久久| 欧美精品一区二区三区蜜桃| 欧美日本一区二区三区四区| 91美女在线视频| 成人午夜精品在线| 国产精品一区二区在线看| 麻豆91在线播放免费| 一区二区三区国产精品| 中文字幕中文在线不卡住| 久久免费美女视频| 精品国产免费人成在线观看| 91精品中文字幕一区二区三区| 色综合天天综合网国产成人综合天| 国产资源精品在线观看| 免费一级片91| 日本不卡视频在线观看| 香蕉av福利精品导航| 一区二区三区在线视频播放| 18成人在线观看| 亚洲人成网站色在线观看| 亚洲欧洲无码一区二区三区| 国产精品国产自产拍在线| 国产精品黄色在线观看| 国产精品久线在线观看| 国产精品进线69影院| 国产精品国产三级国产普通话蜜臀| 久久久精品欧美丰满| 国产日韩高清在线| 国产日韩精品一区二区浪潮av| 国产无一区二区| 国产精品久久久久影院| 久久狠狠亚洲综合| 黄色日韩网站视频| 国产精品一二三| 99久久久精品| 精品视频在线免费看| 欧美高清激情brazzers| 精品人在线二区三区| 久久综合久久综合九色| 中文字幕va一区二区三区| 国产精品成人免费| 亚洲国产精品久久人人爱蜜臀| 午夜在线电影亚洲一区| 男人的天堂久久精品| 国产麻豆精品久久一二三| 国产91精品露脸国语对白| 91小视频在线| 欧美一区2区视频在线观看| xfplay精品久久| 一区二区激情视频| 麻豆视频观看网址久久| zzijzzij亚洲日本少妇熟睡| 色av成人天堂桃色av| 欧美电视剧免费全集观看| 欧美国产精品一区二区三区| 亚洲国产综合视频在线观看| 日本女优在线视频一区二区| 懂色一区二区三区免费观看| 日本道精品一区二区三区| 精品国产1区二区| 亚洲女同一区二区| 激情图片小说一区| 91蜜桃免费观看视频| 精品久久久久久久久久久久包黑料| 中文字幕国产一区| av高清不卡在线| 91精品国产91综合久久蜜臀| 国产日韩av一区| 日韩电影在线一区二区三区| 成人网页在线观看| 91精品国产91久久久久久一区二区| 国产免费观看久久| 日韩精品91亚洲二区在线观看| 成人精品高清在线| 日韩丝袜情趣美女图片| 亚洲日本电影在线| 国产精品99久久久久久有的能看| 欧美色中文字幕| 国产精品乱子久久久久| 美女视频一区二区| 精品视频免费在线| 亚洲色欲色欲www| 国产精品羞羞答答xxdd| 4438x亚洲最大成人网| 亚洲欧洲av色图| 国产91精品一区二区麻豆网站| 欧美一区二区在线免费播放 | 成人精品gif动图一区| 欧美大黄免费观看| 日韩激情av在线| 欧美日韩国产乱码电影| 1000部国产精品成人观看| 国产精品一级黄| 日韩你懂的在线观看| 丝袜亚洲另类欧美| 欧美人动与zoxxxx乱| 亚洲一区二区三区自拍| 日本久久电影网| 一区二区三区.www| 欧美专区在线观看一区| 亚洲欧美日韩成人高清在线一区| 粉嫩av一区二区三区|