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

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

?? main.pas

?? 基于delphi7的串口通信調試工具
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*****************************************************************
*串口調試助手V1.0
*作    者:sky
*Email   : mastersky@21cn.com
*QQ      : 11116580
*版    本:V1.0
*編寫時間:2005/12/19
*說    明:本程序完全參照龔建偉VC版《串口調試助手V2.2》編寫而成。
           僅供學習測試之用。
******************************************************************}
{==================================================================
= 串口調試助手DELPHI SPCOMM V1.1
= 作者    :謝利洪
= Email   : xiliho221@163.com
= 版本    : V1.1
= 編寫時間: 2006.10.21
= 說明    :本版本由sky的1.0修改而成,本來只是用來學習SPCOMM控件的,想不到經過一
            個晚上的努力,程序已經近于完善了。就將我的成果共享出來吧。由于改用
            COMPORT控件為SPCOMM控件,整個代碼已經經過大規模的改動,去除了Email等
            與程序應用不太相關的部分,改進了絕大部分算法,添加原未完成的功能 ,程序
            依然是參照龔建偉VC版《串口調試助手V2.2》來編寫的。
===================================================================}

unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, Spin, ExtCtrls, ImgList,
  Spcomm, shlobj;

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;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    btnSwitch: TButton;
    Panel5: TPanel;
    Button6: TButton;
    cbRecHex: TCheckBox;
    cbAutoClean: TCheckBox;
    btnStopShow: TButton;
    Button8: TButton;
    Button9: TButton;
    edPath: TEdit;
    Timer1: TTimer;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    ComboBox5: TComboBox;
    Comm1: TComm;
    ImageOff: TImage;
    ImageOn: TImage;
    procedure SpeedButton1Click(Sender: TObject);
    procedure btnSwitchClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button5Click(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 Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure ComboBox4Change(Sender: TObject);
    procedure ComboBox5Change(Sender: TObject);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure Memo2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    OnTop : Boolean;
    FShowText:Boolean;
    FRXNum:Integer;
    FTXNum:Integer;
    procedure ShowRX;
    procedure ShowTX;
    procedure ShowStatus;
    procedure SendFile(const filename:string);
    procedure SendString(const str:string);
    procedure WMSysCommand(VAR Message: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation

const
  minWidth=627;
  minHeight=444;
  idAbout =$F200;

{$R *.dfm}

function SelectDirectory(Handle: hwnd; const Caption: string;
         const Root: WideString; out Directory: string): Boolean;
var lpBI: _BrowseInfo;
    Buf: array[0..MAX_PATH] of char;
    ID: IShellFolder;
    Eaten, Att: Cardinal;
    rt: pItemIDList;
    initdir: PWideChar;
begin
  Result := False;
  lpbi.hwndOwner := Handle;
  lpbi.lpfn := nil;
  lpbi.lpszTitle := PChar(Caption);
  lpbi.ulFlags := BIF_RETURNONLYFSDIRS + BIF_EDITBOX;
  SHGetDesktopFolder(ID);
  initdir := PWChar(Root);
  ID.ParseDisplayName(0, nil, InitDir, Eaten, rt, Att);
  lpbi.pidlRoot := rt;
  GetMem(lpbi.pszDisplayName, MAX_PATH);
  try
    Result := SHGetPathFromIDList(SHBrowseForFolder(lpbi), buf);
  except
    FreeMem(lpbi.pszDisplayName);
  end;
  if result then begin
    Directory := buf;
    if Length(Directory) <> 3 then
      Directory := Directory + '\';
  end;
end;


procedure EnumComPorts(Ports: TStrings);
var
  KeyHandle: HKEY;
  ErrCode, Index: Integer;
  ValueName, Data: string;
  ValueLen, DataLen, ValueType: DWORD;
  TmpPorts: TStringList;
begin
  ErrCode := RegOpenKeyEx(
    HKEY_LOCAL_MACHINE,
    'HARDWARE\DEVICEMAP\SERIALCOMM',
    0,
    KEY_READ,
    KeyHandle);

  if ErrCode <> ERROR_SUCCESS then
    Exit;  // raise EComPort.Create(CError_RegError, ErrCode);

  TmpPorts := TStringList.Create;
  try
    Index := 0;
    repeat
      ValueLen := 256;
      DataLen := 256;
      SetLength(ValueName, ValueLen);
      SetLength(Data, DataLen);
      ErrCode := RegEnumValue(
        KeyHandle,
        Index,
        PChar(ValueName),
        Cardinal(ValueLen),
        nil,
        @ValueType,
        PByte(PChar(Data)),
        @DataLen);

      if ErrCode = ERROR_SUCCESS then
      begin
        SetLength(Data, DataLen);
        TmpPorts.Add(Data);
        Inc(Index);
      end
      else
        if ErrCode <> ERROR_NO_MORE_ITEMS then
          exit; //raise EComPort.Create(CError_RegError, ErrCode);

    until (ErrCode <> ERROR_SUCCESS) ;

    TmpPorts.Sort;
    Ports.Assign(TmpPorts);
  finally
    RegCloseKey(KeyHandle);
    TmpPorts.Free;
  end;

end;


procedure TFrmMain.SpeedButton1Click(Sender: TObject);
var
  B:TBitmap;

begin
  B:=TBitmap.Create;
  if not OnTop then
    begin
      SetWindowPos(FrmMain.handle, HWND_TOPMOST, FrmMain.Left, FrmMain.Top,
                    FrmMain.Width, FrmMain.Height,0);
      if ImageList1.GetBitmap(1,B) then
        begin
          SpeedButton1.Glyph.Assign(B);
        end;
    end
    else begin
      SetWindowPos(FrmMain.handle, HWND_NOTOPMOST, FrmMain.Left, FrmMain.Top,
                    FrmMain.Width, FrmMain.Height,0);
      if ImageList1.GetBitmap(0,B) then
        begin
          SpeedButton1.Glyph.Assign(B);
        end;
    end;
  OnTop := not OnTop;
  SpeedButton1.Down := false;
  B.Free;
end;

procedure TFrmMain.btnSwitchClick(Sender: TObject);
var BaudRate :integer;
begin
if btnSwitch.Caption = '打開串口' then
  begin
  if not TryStrToInt(ComboBox2.Text,BaudRate) then
     begin
     Application.MessageBox('波特率設定有誤'+#13+
                             ' 請重新輸入','警告',MB_ICONWARNING or MB_OK);
     ComboBox2.SetFocus;
     exit;
     end;

  Comm1.StartComm;
  btnSwitch.Caption := '關閉串口';
  ComboBox1.Enabled := false;
  ComboBox2.Enabled := false;
  ComboBox3.Enabled := false;
  ComboBox4.Enabled := false;
  ComboBox5.Enabled := false;
  btnSend.Enabled   := true;
  ImageOff.Visible  := false;
  ImageOn.Visible   :=true;
  end
else //if Button1.Caption = '關閉串口' then
  begin
  Comm1.StopComm;
  btnSwitch.Caption := '打開串口';
  ComboBox1.Enabled := true;
  ComboBox2.Enabled := true;
  ComboBox3.Enabled := true;
  ComboBox4.Enabled := true;
  ComboBox5.Enabled := true;
  btnSend.Enabled   := false;
  ImageOn.Visible   := false;
  ImageOff.Visible  :=true;
  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天使萌一区二区三区免费观看| 国产永久精品大片wwwapp| 日韩高清不卡一区二区三区| 国产成人鲁色资源国产91色综| 在线观看精品一区| 国产三级一区二区三区| 免费高清在线视频一区·| 99r国产精品| 精品国产髙清在线看国产毛片| 亚洲美女一区二区三区| 国内精品视频一区二区三区八戒| 欧美另类一区二区三区| 一区二区三区中文免费| 成人成人成人在线视频| 国产三级精品在线| 九九视频精品免费| 日韩一区二区三区精品视频| 亚洲在线一区二区三区| 91免费精品国自产拍在线不卡| 久久综合九色综合97婷婷| 五月天网站亚洲| 欧美怡红院视频| 中文字幕在线一区| 成人一区二区三区中文字幕| 精品国产91乱码一区二区三区 | 色婷婷香蕉在线一区二区| 国产亚洲精品7777| 国产乱子伦一区二区三区国色天香| 欧美男男青年gay1069videost| 亚洲精品ww久久久久久p站| 成人免费视频视频| 国产精品日韩精品欧美在线| 成人午夜电影小说| 国产精品视频一二三| 国产91精品一区二区麻豆网站| 久久综合久色欧美综合狠狠| 国产一区二区三区最好精华液| 日韩免费高清视频| 国产麻豆日韩欧美久久| 久久久久久夜精品精品免费| 狠狠狠色丁香婷婷综合久久五月| 精品国产乱码久久久久久久| 国产乱国产乱300精品| 久久久久国产一区二区三区四区| 国产精品综合久久| 国产精品久久久久久久久免费相片| 高清国产午夜精品久久久久久| 中文字幕一区二区视频| 91网站最新网址| 天堂在线一区二区| 久久在线免费观看| 成人手机在线视频| 一个色综合av| 日韩欧美黄色影院| 高清不卡在线观看av| 一区二区免费在线| 日韩欧美一区中文| 大胆亚洲人体视频| 亚洲午夜久久久久久久久电影院| 欧美精品免费视频| 精品一区二区成人精品| 国产精品国产三级国产普通话三级 | 欧美日韩国产一级| 蜜桃av一区二区三区| 欧美国产精品专区| 欧美又粗又大又爽| 成人综合婷婷国产精品久久蜜臀| 国产日本欧美一区二区| 93久久精品日日躁夜夜躁欧美| 亚洲一区二区三区四区在线免费观看 | 4438成人网| 国产精品系列在线观看| 亚洲精品国产一区二区精华液 | 国产精品一区久久久久| 一区二区三区成人在线视频| 日韩欧美激情在线| 色综合久久中文字幕| 美腿丝袜亚洲一区| 日韩码欧中文字| 精品国产123| 欧美无乱码久久久免费午夜一区| 久久精品国产精品青草| 亚洲精品乱码久久久久久久久| 精品福利av导航| 欧美三级韩国三级日本三斤| 国产91精品一区二区麻豆网站| 亚洲成a天堂v人片| 中文字幕一区二区三区四区| 91精品午夜视频| 91精品1区2区| 成人黄色网址在线观看| 精品制服美女久久| 香蕉成人啪国产精品视频综合网 | 成人理论电影网| 午夜成人免费视频| 综合久久国产九一剧情麻豆| 精品国产凹凸成av人导航| 欧美日韩国产综合草草| 色婷婷激情久久| 波多野结衣中文字幕一区| 美女网站一区二区| 亚洲777理论| 亚洲国产色一区| 一区二区三区日本| 国产精品乱码一区二三区小蝌蚪| 欧美精品一区二区三区蜜桃视频| 欧美丰满一区二区免费视频| 欧美做爰猛烈大尺度电影无法无天| 成人精品国产一区二区4080| 国产成人综合视频| 国精产品一区一区三区mba桃花| 青青草91视频| 蜜臀精品久久久久久蜜臀| 视频一区二区国产| 亚欧色一区w666天堂| 天天综合色天天| 日韩成人免费电影| 免费看欧美女人艹b| 日本vs亚洲vs韩国一区三区| 首页亚洲欧美制服丝腿| 日韩不卡一二三区| 日本亚洲免费观看| 青娱乐精品在线视频| 美女精品一区二区| 国产一区欧美日韩| 在线播放日韩导航| 日韩欧美色电影| www国产成人免费观看视频 深夜成人网 | 国产九色sp调教91| 国产电影精品久久禁18| 成人av在线电影| 91免费在线播放| 在线播放国产精品二区一二区四区 | 亚洲综合区在线| 午夜精品福利在线| 奇米综合一区二区三区精品视频| 美女性感视频久久| 岛国一区二区三区| 色94色欧美sute亚洲线路一ni | 国产精品一区二区黑丝| 成人精品一区二区三区中文字幕 | 欧美一区二区三区视频在线| 欧美一级爆毛片| 久久九九99视频| 成人欧美一区二区三区在线播放| 亚洲另类春色国产| 日本va欧美va瓶| 成人av在线网站| 欧美区一区二区三区| 精品国产一区二区三区不卡 | 欧美日韩激情一区二区| 日韩午夜av一区| 国产精品欧美一区喷水| 亚洲一区在线看| 国产九九视频一区二区三区| 色久综合一二码| 精品日韩在线观看| 日韩毛片高清在线播放| 免费久久精品视频| 91蜜桃网址入口| 久久嫩草精品久久久精品一| 亚洲乱码国产乱码精品精的特点| 日韩国产成人精品| 95精品视频在线| 精品福利一区二区三区免费视频| 一区二区三区在线视频观看| 国内成人精品2018免费看| 91日韩一区二区三区| 久久婷婷色综合| 日韩高清不卡在线| 色综合久久久久| 国产亚洲精品中文字幕| 日韩av电影免费观看高清完整版| 97se亚洲国产综合在线| 久久综合成人精品亚洲另类欧美| 亚洲二区在线视频| 不卡的看片网站| 26uuu国产一区二区三区| 三级欧美在线一区| 欧美性色aⅴ视频一区日韩精品| 国产欧美一区二区精品性色超碰 | 欧美激情一区二区在线| 久久精品国产久精国产爱| 欧洲一区在线电影| 国产精品国产三级国产aⅴ入口| 精品一二三四在线| 欧美精品视频www在线观看| 亚洲精品国久久99热| 99久久久免费精品国产一区二区| 久久久99精品免费观看不卡| 蜜桃久久久久久| 欧美一区二区网站| 日韩福利视频导航| 337p亚洲精品色噜噜狠狠| 亚洲国产色一区| 91一区一区三区| 亚洲精品日韩一| 欧美性生活久久| 图片区小说区国产精品视频| 欧美午夜影院一区|