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

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

?? main.pas

?? 仿照串口調(diào)試助手
?? PAS
字號:
{*****************************************************************
*串口調(diào)試助手V1.0
*作    者:sky
*Email   : mastersky@21cn.com
*QQ      : 11116580
*版    本:V1.0
*編寫時間:2005/12/19
*說    明:本程序完全參照龔建偉VC版《串口調(diào)試助手V2.2》編寫而成。
           僅供學(xué)習(xí)測試之用。
******************************************************************}

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:='關(guān)閉串口';
  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=串口調(diào)試助手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進制字符串轉(zhuǎn)換成字符串
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;
//字符串轉(zhuǎn)換成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.Text:=Memo1.Text+StrToHexStr(Str)
    else
      Memo1.Text := Memo1.Text + 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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女高潮久久久| 日韩欧美激情在线| eeuss鲁片一区二区三区在线看| 国产又粗又猛又爽又黄91精品| 日本中文在线一区| 日产欧产美韩系列久久99| 调教+趴+乳夹+国产+精品| 偷拍自拍另类欧美| 全部av―极品视觉盛宴亚洲| 免费看日韩a级影片| 蜜桃av一区二区| 国产一区二区在线免费观看| 国产成人在线视频网址| 成人午夜视频福利| 91亚洲精华国产精华精华液| 色久优优欧美色久优优| 欧美性大战久久| 欧美一级国产精品| 2021中文字幕一区亚洲| 国产精品久久久久影院亚瑟| 亚洲男人电影天堂| 91女厕偷拍女厕偷拍高清| 色综合视频一区二区三区高清| 91久久国产最好的精华液| 欧美酷刑日本凌虐凌虐| 欧美一区二区三区公司| 欧美xxxxx裸体时装秀| 国产欧美日韩综合| 亚洲视频香蕉人妖| 日韩国产精品大片| 国产精品自拍三区| 91福利国产精品| 日韩精品中午字幕| 国产精品国产三级国产aⅴ中文| 伊人性伊人情综合网| 欧美a级理论片| 成人动漫av在线| 777久久久精品| 国产女人18水真多18精品一级做| 亚洲乱码国产乱码精品精小说| 日韩精品视频网| 国产99一区视频免费| 在线观看视频一区二区欧美日韩| 欧美一卡二卡三卡| 亚洲丝袜制服诱惑| 麻豆传媒一区二区三区| 97久久精品人人爽人人爽蜜臀 | 日韩亚洲欧美在线观看| 日本一区免费视频| 亚洲一二三四久久| 国产精品综合av一区二区国产馆| 91成人国产精品| 久久亚洲精华国产精华液| 亚洲精品综合在线| 国产成人综合在线播放| 在线成人小视频| 亚洲欧美日韩国产成人精品影院| 蜜臀久久99精品久久久画质超高清 | 亚洲免费看黄网站| 韩国毛片一区二区三区| 欧美日韩一区二区三区四区 | 日韩av一二三| 色婷婷综合久久久久中文| 337p日本欧洲亚洲大胆色噜噜| 亚洲激情五月婷婷| 国产91富婆露脸刺激对白| 69久久夜色精品国产69蝌蚪网| 亚洲色图制服丝袜| 国产成人综合亚洲91猫咪| 日韩一区二区三区高清免费看看| 悠悠色在线精品| 成人夜色视频网站在线观看| 日韩欧美精品在线| 日韩影视精彩在线| 欧美日韩一区二区三区四区五区| 亚洲视频一区在线| 成人免费毛片片v| 精品第一国产综合精品aⅴ| 性欧美大战久久久久久久久| 91在线观看污| 欧美韩国一区二区| 国产伦精品一区二区三区视频青涩| 69久久夜色精品国产69蝌蚪网| 一卡二卡欧美日韩| 91在线无精精品入口| 中文字幕av一区二区三区| 国产二区国产一区在线观看| 欧美成人精品3d动漫h| 欧美精品高清视频| 亚洲国产美国国产综合一区二区| 99精品在线观看视频| 中文字幕成人在线观看| 国产激情一区二区三区四区 | 亚洲精品videosex极品| 成人网页在线观看| 国产精品九色蝌蚪自拍| 国产91富婆露脸刺激对白| 国产日产精品一区| 成人美女视频在线看| 国产精品高潮呻吟| 9久草视频在线视频精品| 一区视频在线播放| 波多野洁衣一区| 亚洲欧美另类久久久精品| 99久久精品免费看国产| 亚洲免费伊人电影| 欧美综合天天夜夜久久| 午夜久久久影院| 91精品久久久久久久91蜜桃| 秋霞电影一区二区| 精品少妇一区二区| 国产精品99久久久久久久女警| 久久精品欧美一区二区三区麻豆| 国产寡妇亲子伦一区二区| 欧美国产精品劲爆| 91免费看`日韩一区二区| 亚洲永久免费av| 91精品欧美一区二区三区综合在 | 亚洲v中文字幕| 91麻豆精品国产91久久久使用方法 | 欧美午夜不卡视频| 青青国产91久久久久久| 精品国产精品网麻豆系列| 国产成人精品三级麻豆| 最新欧美精品一区二区三区| 91一区二区三区在线播放| 亚洲一区二区精品视频| 日韩欧美一级在线播放| 国产一区二区伦理片| 国产精品国产三级国产aⅴ无密码| 色天使色偷偷av一区二区| 午夜精品福利久久久| 欧美精品一区二区三区久久久| 成人福利视频网站| 一区二区视频在线| 日韩视频免费观看高清完整版在线观看| 精品一区二区免费看| 国产精品久久久久aaaa| 51精品国自产在线| 成人精品鲁一区一区二区| 亚洲不卡一区二区三区| 2020国产精品久久精品美国| 91视频在线观看| 美日韩一级片在线观看| 亚洲视频图片小说| 欧美电影精品一区二区| 99久久精品国产导航| 蜜臀av亚洲一区中文字幕| 国产精品国产三级国产a| 91精品国产综合久久久久| 成人午夜伦理影院| 日本不卡一二三| 亚洲人123区| 久久久久青草大香线综合精品| 在线观看一区二区视频| 国产精品123| 欧美系列亚洲系列| 国产乱一区二区| 午夜在线电影亚洲一区| 国产精品视频一二| 欧美一级高清大全免费观看| 91麻豆精品一区二区三区| 经典一区二区三区| 亚洲黄色在线视频| 久久久精品tv| 91精品国产欧美一区二区成人| 99久久久精品免费观看国产蜜| 久久99在线观看| 亚洲不卡一区二区三区| 亚洲丝袜美腿综合| 日本一区二区三级电影在线观看| 欧美一区二区三区视频免费播放| 一本色道亚洲精品aⅴ| 国产成人久久精品77777最新版本| 日韩—二三区免费观看av| 依依成人精品视频| 国产精品高潮呻吟| 久久久久国产一区二区三区四区| 欧美一区二区在线看| 欧美视频在线一区二区三区 | 成人午夜视频福利| 久草精品在线观看| 男女性色大片免费观看一区二区| 一区二区激情视频| 中文字幕佐山爱一区二区免费| 久久久亚洲精品石原莉奈| 欧美电视剧在线观看完整版| 欧美一区二区三区免费视频| 欧美日韩国产影片| 欧美性色欧美a在线播放| 色综合久久六月婷婷中文字幕| 国产大陆a不卡| 国产乱人伦偷精品视频不卡| 精品影视av免费| 麻豆国产精品一区二区三区| 免费看黄色91| 免费人成黄页网站在线一区二区| 五月婷婷激情综合| 性感美女久久精品| 亚洲r级在线视频|