亚洲欧美第一页_禁久久精品乱码_粉嫩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:='繼續顯示';
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一区二区三区免费野_久草精品视频
欧美伦理电影网| 8v天堂国产在线一区二区| 国内成+人亚洲+欧美+综合在线| 亚洲午夜羞羞片| 夜夜嗨av一区二区三区网页| 国产精品久99| 亚洲少妇屁股交4| 亚洲精品久久久蜜桃| 亚洲乱码日产精品bd| 亚洲精品国产第一综合99久久| 亚洲欧洲精品一区二区三区| 亚洲国产精品精华液ab| 国产精品乱码一区二三区小蝌蚪| 欧美经典一区二区三区| 亚洲少妇屁股交4| 一级日本不卡的影视| 亚洲一二三四久久| 麻豆国产91在线播放| 国产一区二区三区免费看| 大胆欧美人体老妇| 在线一区二区观看| 日韩一区二区三区视频| 国产女主播视频一区二区| 亚洲欧美一区二区三区孕妇| 亚洲国产欧美日韩另类综合| 激情综合一区二区三区| www.欧美色图| 欧美成人激情免费网| 日本一区二区成人在线| 亚洲一区二区三区四区在线免费观看| 日精品一区二区| 国产精品一级片在线观看| 93久久精品日日躁夜夜躁欧美| 欧美亚洲综合另类| 国产色一区二区| 夜夜嗨av一区二区三区四季av| 美女性感视频久久| 色综合中文字幕国产| 26uuu亚洲综合色欧美| 日韩一区欧美一区| 久久er精品视频| 91福利在线播放| 久久久久久久久久久久久女国产乱| 最新国产成人在线观看| 国精产品一区一区三区mba桃花| 在线一区二区视频| 中文子幕无线码一区tr| 青青草伊人久久| 色妞www精品视频| 国产日韩高清在线| 美女在线视频一区| 欧美日韩情趣电影| 亚洲三级电影网站| 国产成人亚洲精品青草天美| 欧美一区在线视频| 亚洲五码中文字幕| 91老司机福利 在线| 国产亚洲欧美色| 另类小说综合欧美亚洲| 精品视频资源站| 一区二区三区鲁丝不卡| 成人午夜私人影院| 国产日产精品1区| 国产一区二区成人久久免费影院| 欧美日韩视频不卡| 婷婷综合久久一区二区三区| 在线一区二区观看| 一区二区三区四区亚洲| 99精品一区二区三区| 国产女同性恋一区二区| 国产传媒久久文化传媒| 久久香蕉国产线看观看99| 久久精品国产亚洲5555| 日韩欧美三级在线| 久久电影网站中文字幕 | 国产主播一区二区三区| 久久人人爽人人爽| 美女网站色91| 精品免费一区二区三区| 免费人成在线不卡| 制服丝袜激情欧洲亚洲| 蜜臀国产一区二区三区在线播放| 欧美一级高清大全免费观看| 青椒成人免费视频| 精品国产一区二区三区久久影院 | 欧美日韩国产片| 婷婷久久综合九色综合伊人色| 欧美日本不卡视频| 麻豆91在线观看| 国产视频一区在线观看| jlzzjlzz亚洲日本少妇| 一区二区三区中文免费| 欧美放荡的少妇| 激情av综合网| 中文av一区二区| 欧美亚洲丝袜传媒另类| 亚洲成人久久影院| 欧美成人精品1314www| 丁香桃色午夜亚洲一区二区三区| 日本一区二区三区在线不卡| 色88888久久久久久影院野外| 夜夜夜精品看看| 7777精品久久久大香线蕉| 精品一区二区三区久久久| 国产精品丝袜一区| 欧美日韩激情一区二区三区| 久久国产夜色精品鲁鲁99| 国产精品你懂的在线欣赏| 欧美三级视频在线播放| 国产中文字幕精品| 一区二区高清在线| 精品福利一区二区三区免费视频| 99视频有精品| 日本网站在线观看一区二区三区| 欧美国产成人在线| 欧美日韩国产成人在线免费| 国产精品99久久久久久宅男| 亚洲午夜视频在线观看| 国产欧美一区二区在线观看| 欧美日韩亚州综合| 国产精品一区二区在线观看网站 | 欧美一级黄色录像| 99国产精品国产精品毛片| 蜜臀精品一区二区三区在线观看 | 亚洲色图在线视频| 日韩欧美美女一区二区三区| 色久优优欧美色久优优| 成人听书哪个软件好| 欧美a级理论片| 依依成人精品视频| 欧美激情在线看| 精品欧美乱码久久久久久1区2区| 在线精品视频一区二区三四| 成人久久视频在线观看| 国内精品在线播放| 美日韩一区二区| 五月天久久比比资源色| 亚洲蜜臀av乱码久久精品| 国产欧美日韩精品一区| 久久影视一区二区| 日韩三级视频在线观看| 9191国产精品| 欧美日韩一区二区三区四区| 色综合天天天天做夜夜夜夜做| 国产一区二区三区免费播放| 久久电影国产免费久久电影| 日本va欧美va欧美va精品| 图片区小说区区亚洲影院| 性欧美疯狂xxxxbbbb| 亚洲va天堂va国产va久| 午夜久久久久久久久久一区二区| 亚洲影院免费观看| 亚洲综合区在线| 亚洲愉拍自拍另类高清精品| 亚洲综合成人在线| 亚洲一区二区欧美激情| 调教+趴+乳夹+国产+精品| 亚洲图片欧美综合| 午夜精品福利在线| 日韩1区2区3区| 精品一区二区在线看| 国产一区在线不卡| 国产成人午夜精品5599| 成人v精品蜜桃久久一区| 99久久精品99国产精品| 欧美影院一区二区三区| 884aa四虎影成人精品一区| 日韩午夜激情免费电影| 国产丝袜欧美中文另类| 中文字幕一区二区三区精华液| 一区二区三区欧美视频| 三级欧美韩日大片在线看| 美国十次了思思久久精品导航| 狠狠色狠狠色合久久伊人| 成人午夜激情视频| 欧美四级电影网| 日韩精品一区二区三区在线| 国产欧美视频一区二区三区| 亚洲精品免费播放| 久久国产精品99精品国产| 99精品国产99久久久久久白柏| 欧美日韩黄色一区二区| 精品国产区一区| 一区二区三区四区中文字幕| 麻豆成人在线观看| 色先锋资源久久综合| 日韩一区二区三区av| 亚洲欧洲性图库| 久久精品理论片| 欧洲色大大久久| 国产亚洲一区二区三区| 一个色综合av| 高清av一区二区| 日韩欧美激情在线| 夜夜爽夜夜爽精品视频| 国产成人在线视频网址| 欧美日本一道本在线视频| 国产清纯美女被跳蛋高潮一区二区久久w| 一区二区三国产精华液| 国产精品一区久久久久|