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

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

?? trigger.~pas

?? 很好用的串口通信工具軟件。Comport目錄下是用到的通信控件。
?? ~PAS
字號:
unit Trigger;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst, TriggerUtil, ImgList, ComCtrls, ToolWin,
  ExtCtrls, Buttons;

type

  TFrm_Trigger = class(TForm)
    ToolBar: TToolBar;
    btn_Open: TToolButton;
    btn_Save: TToolButton;
    ToolButton2: TToolButton;
    ImgListMain: TImageList;
    btn_Add: TToolButton;
    btn_Delete: TToolButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Ed_TriggerName: TEdit;
    Label1: TLabel;
    ed_TriggerData: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    ed_RespondeData: TEdit;
    ed_RespondeDelay: TEdit;
    Label5: TLabel;
    cb_Active: TCheckBox;
    Label6: TLabel;
    ed_Conv: TEdit;
    SpeedButton1: TSpeedButton;
    Label7: TLabel;
    ed_TriggerLen: TEdit;
    tv_Trigger: TTreeView;
    ImageList_TV: TImageList;
    SaveDlg: TSaveDialog;
    OpenDlg: TOpenDialog;
    btn_SaveEdit: TButton;
    btn_CancelEdit: TButton;
    Panel3: TPanel;
    Button1: TButton;
    Button2: TButton;
    Bevel1: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure tv_TriggerChanging(Sender: TObject; Node: TTreeNode;
      var AllowChange: Boolean);
    procedure tv_TriggerChange(Sender: TObject; Node: TTreeNode);
    procedure btn_OpenClick(Sender: TObject);
    procedure btn_SaveClick(Sender: TObject);
    procedure btn_AddClick(Sender: TObject);
    procedure btn_DeleteClick(Sender: TObject);
    procedure btn_SaveEditClick(Sender: TObject);
    procedure btn_CancelEditClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure tv_TriggerDblClick(Sender: TObject);
  private
    { Private declarations }
    FTrigger: TTrigger;
    FFileName: string;
    procedure SetTrigger(value: TTrigger);
    procedure LoadFromTrigger;
    procedure SaveTriggerInfo(Node: TTreeNode = nil);
  published
    property Trigger: TTrigger read FTrigger write SetTrigger;
  end;

procedure Show_Trigger(oldTrigger: TTrigger; var TriggerFileName: string);

implementation

{$R *.dfm}

procedure Show_Trigger(oldTrigger: TTrigger; var TriggerFileName: string);
begin
  with TFrm_Trigger.Create(Application) do
  begin
    try
      Trigger := oldTrigger;
      FFileName := TriggerFileName;
      LoadFromTrigger;
      if ShowModal = mrOK then
      begin
        oldTrigger.Assign(Trigger);
        TriggerFileName := FFileName;
      end;
    finally
      Free;
    end;
  end;
end;

procedure TFrm_Trigger.SetTrigger(value: TTrigger);
begin
  FTrigger.Assign(value);
end;

procedure TFrm_Trigger.FormCreate(Sender: TObject);
begin
  FTrigger := TTrigger.Create(TTriggerItem);
end;

procedure TFrm_Trigger.FormDestroy(Sender: TObject);
begin
  FTrigger.Free;
end;

procedure TFrm_Trigger.LoadFromTrigger;
var i: Integer;
  Item: TTriggerItem;
  Node: TTreeNode;
begin
  for i := 0 to Trigger.Count - 1 do
  begin
    Item := Trigger[i];
    Node := tv_Trigger.Items.AddChild(nil, Item.TriggerName);
    Node.Data := Item;
    Node.ImageIndex := Integer(Item.Actived);
    Node.SelectedIndex := Node.ImageIndex;
    if i = 0 then Node.Selected := True;
  end;
end;

procedure TFrm_Trigger.SpeedButton1Click(Sender: TObject);
begin
  ed_Conv.Text := StrToHex(ed_Conv.Text);
  ed_Conv.SelectAll;
  ed_Conv.CopyToClipboard;
end;

procedure TFrm_Trigger.tv_TriggerChanging(Sender: TObject; Node: TTreeNode;
  var AllowChange: Boolean);
begin
  SaveTriggerInfo;
  AllowChange := True;
end;

procedure TFrm_Trigger.tv_TriggerChange(Sender: TObject; Node: TTreeNode);
var Item: TTriggerItem;
begin
  Item := TTriggerItem(Node.Data);
  if Item = nil then Exit;
  Ed_TriggerName.Text := Item.TriggerName;
  ed_TriggerData.Text := StrToHex(Item.TriggerHead);
  ed_TriggerLen.Text := IntToStr(Item.TriggerLen);
  ed_RespondeData.Text := StrToHex(Item.RespondeData);
  ed_RespondeDelay.Text := IntToStr(Item.RespondeDelay);
  cb_Active.Checked := Item.Actived;
end;

procedure TFrm_Trigger.SaveTriggerInfo(Node: TTreeNode = nil);
var Item: TTriggerItem;
  TriggerHead, RespondeData: string;
  TriggerLen, RespondeDelay: Integer;
begin
  if Node = nil then Node := TV_Trigger.Selected;
  if Node = nil then Exit;
  Item := TTriggerItem(Node.Data);
  TriggerHead := HexToStr(ed_TriggerData.Text);
  RespondeData := HexToStr(ed_RespondeData.Text);
  TriggerLen := StrToInt(ed_TriggerLen.Text);
  RespondeDelay := StrToInt(ed_RespondeDelay.Text);

  if TriggerHead = '' then
    raise Exception.Create('觸發數據頭不能為空');
  if TriggerLen <= 0 then
    raise Exception.Create('觸發數據長度不能為0');

  Item.TriggerName := Ed_TriggerName.Text;
  Item.TriggerHead := TriggerHead;
  Item.TriggerLen := TriggerLen;
  Item.RespondeData := RespondeData;
  Item.RespondeDelay := RespondeDelay;
  Item.Actived := cb_Active.Checked;
  Node.Text := Item.TriggerName;
  Node.SelectedIndex := Integer(Item.Actived);
  Node.ImageIndex := Integer(Item.Actived);
end;

procedure TFrm_Trigger.btn_OpenClick(Sender: TObject);
begin
  if OpenDlg.Execute then
  begin
    Trigger.LoadFromFile(OpenDlg.FileName);
    FFileName := OpenDlg.FileName;
    LoadFromTrigger;
  end;
end;

procedure TFrm_Trigger.btn_SaveClick(Sender: TObject);
begin
  if FFileName = '' then
  begin
    if SaveDlg.Execute then
    begin
      if FileExists(SaveDlg.FileName) then
        if MessageBox(Handle, '文件已經存在,覆蓋嗎?', '警告', MB_ICONWARNING + MB_YESNO + MB_APPLMODAL) = IDNo then
          Exit;
      FFileName := SaveDlg.FileName;
    end;
  end;
  SaveTriggerInfo;
  Trigger.SaveToFile(FFileName);
end;

procedure TFrm_Trigger.btn_AddClick(Sender: TObject);
var Item: TTriggerItem;
  Node: TTreeNode;
begin
  SaveTriggerInfo;
  Item := Trigger.Add as TTriggerItem;
  Node := tv_Trigger.Items.AddChild(nil, Item.TriggerName);
  Node.Data := Item;
  Node.ImageIndex := Integer(Item.Actived);
  Node.SelectedIndex := Node.ImageIndex;
  Node.Selected := True;
end;

procedure TFrm_Trigger.btn_DeleteClick(Sender: TObject);
var Item: TTriggerItem;
  Node: TTreeNode;
begin
  Node := Tv_Trigger.Selected;
  if Node = nil then Exit;
  Item := TTriggerItem(Node.Data);
  Tv_Trigger.Items.Delete(Node);
  Trigger.Delete(Item.ID);
end;

procedure TFrm_Trigger.btn_SaveEditClick(Sender: TObject);
begin
  SaveTriggerInfo;
end;

procedure TFrm_Trigger.btn_CancelEditClick(Sender: TObject);
begin
  if Tv_Trigger.Selected = nil then Exit;
  tv_TriggerChange(self, Tv_Trigger.Selected);
end;

procedure TFrm_Trigger.Button1Click(Sender: TObject);
begin
  SaveTriggerInfo;
  Trigger.SaveToFile(FFileName);
  ModalResult := mrOK;
end;

procedure TFrm_Trigger.tv_TriggerDblClick(Sender: TObject);
var Node: TTreeNode;
  Item: TTriggerItem;
begin
  Node := Tv_Trigger.Selected;
  if Node = nil then Exit;
  Item := TTriggerItem(Node.Data);
  Item.Actived := not Item.Actived;
  Node.ImageIndex := Integer(Item.Actived);
  Node.SelectedIndex := Node.ImageIndex;
  cb_Active.Checked := Item.Actived;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新高清无码专区| 国产日韩欧美精品综合| 看电影不卡的网站| 国产日韩欧美高清在线| 欧美色图在线观看| 国产在线不卡视频| 亚洲一二三区在线观看| 久久一区二区视频| 国产高清在线观看免费不卡| 亚洲色图制服诱惑| 精品少妇一区二区三区日产乱码| 国产成人在线视频网址| 亚洲午夜影视影院在线观看| 久久一区二区三区四区| 欧美视频你懂的| 福利一区福利二区| 日日骚欧美日韩| 国产精品乱子久久久久| 日韩欧美在线观看一区二区三区| 99re视频这里只有精品| 麻豆久久久久久久| 一区二区日韩电影| 国产三级一区二区三区| 欧美久久免费观看| 99精品黄色片免费大全| 美国毛片一区二区三区| 伊人一区二区三区| 亚洲色图19p| 国产精品污网站| 国产欧美视频一区二区三区| 精品91自产拍在线观看一区| 欧美日韩另类一区| 欧美日韩国产一级片| 欧美午夜精品免费| 91国产免费看| 色国产综合视频| 99九九99九九九视频精品| 成人免费观看视频| av亚洲产国偷v产偷v自拍| www.爱久久.com| 91丨porny丨在线| 91麻豆产精品久久久久久| 91影院在线观看| 色偷偷久久一区二区三区| 一本到一区二区三区| 欧美伊人精品成人久久综合97| 欧美吞精做爰啪啪高潮| 在线观看91精品国产麻豆| 欧美一级高清片| 亚洲欧美经典视频| 亚洲手机成人高清视频| 亚洲综合精品自拍| 五月天久久比比资源色| 蜜桃av一区二区| 国产黄色精品网站| 99在线精品观看| 色www精品视频在线观看| 欧美日韩一区视频| 欧美成人一区二区三区片免费 | eeuss鲁片一区二区三区| jlzzjlzz欧美大全| 欧美亚洲图片小说| 欧美酷刑日本凌虐凌虐| 久久综合九色综合久久久精品综合| 国产网站一区二区三区| 亚洲欧美日韩久久精品| 天天色 色综合| 国产麻豆精品久久一二三| 9久草视频在线视频精品| 欧美日韩综合在线免费观看| 日韩欧美一二区| 国产日韩欧美精品电影三级在线| 亚洲精品国产a久久久久久| 日韩精品亚洲专区| 丁香亚洲综合激情啪啪综合| 欧美性xxxxxx少妇| 久久美女艺术照精彩视频福利播放| 国产精品免费丝袜| 首页亚洲欧美制服丝腿| 成人午夜免费av| 欧美日韩极品在线观看一区| 久久久久久久久久久久久女国产乱 | 日本一区二区三区在线不卡| 一区二区三区在线视频免费观看| 日本欧美一区二区三区| 成人精品视频网站| 日韩一区二区在线免费观看| 日韩美女精品在线| 久久99国产精品麻豆| 色www精品视频在线观看| 26uuu欧美| 亚洲国产精品一区二区久久恐怖片 | 国产精品国产三级国产普通话三级 | 一区二区三区四区高清精品免费观看 | 亚洲欧美国产77777| 免费观看成人av| 9色porny自拍视频一区二区| 欧美一二三区精品| 一区在线观看免费| 激情综合五月天| 欧美日韩综合色| 亚洲日本一区二区| 国产精品18久久久久久久久 | 欧美日韩在线播| 国产精品久久毛片| 精品一区二区三区免费| 欧美偷拍一区二区| 亚洲色图视频免费播放| 国产精品18久久久久久久久 | 性欧美疯狂xxxxbbbb| 91色婷婷久久久久合中文| 久久免费看少妇高潮| 男女男精品视频网| 欧美老女人第四色| 一区二区三区蜜桃| 91在线小视频| 国产精品视频你懂的| 国产在线播放一区| 精品国产乱码久久久久久免费| 亚洲777理论| 欧美亚洲综合一区| 亚洲自拍另类综合| 91国产丝袜在线播放| 亚洲欧美一区二区三区极速播放 | 免费观看在线综合| 欧美视频日韩视频在线观看| 亚洲欧美日韩国产成人精品影院| 成人激情开心网| 国产欧美日韩另类一区| 国产精品一区二区黑丝| 久久亚洲免费视频| 国产一区二区三区免费播放| ww亚洲ww在线观看国产| 韩国三级在线一区| 久久婷婷色综合| 国产激情一区二区三区| 欧美国产日本韩| 成人动漫一区二区三区| 日韩伦理av电影| 色狠狠综合天天综合综合| 亚洲精品美国一| 欧美午夜电影在线播放| 午夜精品久久久久久久久| 欧美精品第1页| 麻豆91精品视频| 久久女同性恋中文字幕| 国产91清纯白嫩初高中在线观看| 国产精品欧美久久久久无广告| 波波电影院一区二区三区| 亚洲欧美国产高清| 欧美日韩色综合| 久久国产夜色精品鲁鲁99| 久久综合久久综合亚洲| 成a人片亚洲日本久久| 一区二区三区在线视频观看58 | 国产精品成人一区二区三区夜夜夜| 波多野结衣91| 亚洲主播在线播放| 91精品婷婷国产综合久久性色 | 成人午夜av在线| 亚洲精品国产a久久久久久| 欧美日韩国产综合一区二区三区 | 丝袜美腿亚洲综合| 欧美成人video| 国产999精品久久久久久绿帽| 亚洲欧美中日韩| 678五月天丁香亚洲综合网| 国产伦精一区二区三区| 国产精品看片你懂得| 欧美性受极品xxxx喷水| 韩国一区二区视频| 亚洲视频在线观看一区| 欧美另类一区二区三区| 国产剧情一区在线| 亚洲乱码中文字幕综合| 日韩一级大片在线| 99re在线视频这里只有精品| 丝袜美腿亚洲综合| 亚洲国产精品成人综合 | 免费视频最近日韩| 国产精品国产三级国产普通话三级 | 久久综合成人精品亚洲另类欧美 | 26uuu亚洲| 91看片淫黄大片一级在线观看| 日本美女一区二区三区视频| 欧美激情中文字幕| 91精品久久久久久久91蜜桃| 国产成人午夜片在线观看高清观看| 一片黄亚洲嫩模| 国产亚洲精品aa午夜观看| 欧美精品九九99久久| 成人97人人超碰人人99| 裸体歌舞表演一区二区| 一区二区久久久久久| 国产午夜精品福利| 欧美剧在线免费观看网站| 91视频免费观看| 国产不卡免费视频| 久久国产精品区| 亚洲高清免费观看高清完整版在线观看|