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

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

?? lcdmain.cpp

?? USB HID 控件,適用于DLEPHI及BCB
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "LCDMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "JvHidControllerClass"
#pragma resource "*.dfm"
TLCDMainForm *LCDMainForm;
//---------------------------------------------------------------------------
__fastcall TLCDMainForm::TLCDMainForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TLCDMainForm::FormActivate(TObject *Sender)
{
  int I;
  AnsiString S;

  // place the edit controls in an array for easy access
  if (Edits[0] == NULL)
    for(I = 0; I < 7; I++)
      Edits[I] = (TEdit *) FindComponent(S.sprintf("Write%d", I+1));
}
//---------------------------------------------------------------------------

bool __stdcall FindLcdIOWarrior(TJvHidDevice *HidDev)
{
  // the IO-Warrior shows up as two devices
  // we want access to the IO-Warrior device for the LCD module
  // the other one with a InputReportByteLength of 5 is for access to
  // the IO pins
  // It is quite interesting to use the IO-WarriorDemo in parallel!
  return (HidDev->Attributes.VendorID == cCodeMercenariesVID &&
    HidDev->Attributes.ProductID == cIOWarriorPID &&
    HidDev->Caps.InputReportByteLength == 8);
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::HidCtlDeviceChange(TObject *Sender)
{
  // Free the device object if it has been unplugged
  if(IOWarrior != NULL && !IOWarrior->IsPluggedIn)
  {
    FreeAndNil(&IOWarrior);
    // throw away the log (better save it before unplugging)
    HistoryListBox->Items->Clear();
    EnableChk->Checked = false;
    EnableChk->Enabled = false;
  }

  // if no IO-Warrior in use yet then search for one
  if(IOWarrior == NULL)
    if(HidCtl->CheckOutByCallback(IOWarrior, FindLcdIOWarrior))
    {
      EnableChk->Enabled = true;
      EnableChk->Checked = true;
    }
  // an alternative to "if Assigned(IOWarrior) then"
  if(HidCtl->CountByID(cCodeMercenariesVID, cIOWarriorPID) > 0)
    IOWarriorAvailable->Caption = "IO-Warrior found";
  else
    IOWarriorAvailable->Caption = "No IO-Warrior found";
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::EnableChkClick(TObject *Sender)
{
  int I;
  unsigned int BytesWritten;
  TIOWarriorOutputReport IOWarriorOutputReport;

  if(IOWarrior != NULL)
  {
    // initialize the output report to enable/disable the LCD module
    IOWarriorOutputReport.ReportID = cLCDEnableReportID;
    for(I = 0; I < 7; I++)
      IOWarriorOutputReport.LCDBytes[I] = 0x00;
    if(EnableChk->Checked)
      IOWarriorOutputReport.LCDBytes[0] = cEnable;
    else
      IOWarriorOutputReport.LCDBytes[0] = cDisable;
    // write the bits to the IO-Warrior to enable/disable the LCD
    IOWarrior->WriteFile(&IOWarriorOutputReport, sizeof(IOWarriorOutputReport), BytesWritten);
    WriteBtn->Enabled = EnableChk->Checked;
    ReadBtn->Enabled  = EnableChk->Checked;
  }
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::WriteBtnClick(TObject *Sender)
{
  unsigned int I;
  unsigned int BytesWritten;
  TIOWarriorOutputReport IOWarriorOutputReport;
  AnsiString S;
  AnsiString Str;

  IOWarriorOutputReport.ReportID = cLCDWriteReportID;
  // get the input from the user
  for(I = 0; I < 7; I++)
  {
    IOWarriorOutputReport.LCDBytes[I] = StrToIntDef("$" + Edits[I]->Text, 0);
    Edits[I]->Text.sprintf("%02X", IOWarriorOutputReport.LCDBytes[I]);
  }
  // reset unused bits in first byte
  IOWarriorOutputReport.LCDBytes[0] &= 0x07;
  // add the RS bit from the checkbox
  if(RSBit->Checked)
    IOWarriorOutputReport.LCDBytes[0] |= 0x80;
  IOWarrior->WriteFile(&IOWarriorOutputReport, 8, BytesWritten);

  // show the data in the history listbox
  Str.sprintf("W %02X  ", IOWarriorOutputReport.ReportID);
  for(I = 0; I < BytesWritten; I++)
    Str += S.sprintf("%02X ", IOWarriorOutputReport.LCDBytes[I-1]);
  HistoryListBox->ItemIndex = HistoryListBox->Items->Add(Str);
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::ReadBtnClick(TObject *Sender)
{
  unsigned int I;
  unsigned int BytesWritten;
  TIOWarriorOutputReport IOWarriorOutputReport;
  AnsiString S;
  AnsiString Str;

  IOWarriorOutputReport.ReportID = cLCDReadReportID;
  for(I = 0; I < 7; I++)
    IOWarriorOutputReport.LCDBytes[I] = 0x00;
  // get number of bytes to read, ensure the max of 63 and reset unused bits
  IOWarriorOutputReport.LCDBytes[0] = StrToIntDef("$" + Read1->Text, 0) & 0x3F;
  // add the RS bit from the checkbox
  if(RSBit->Checked)
    IOWarriorOutputReport.LCDBytes[0] |= 0x80;
  IOWarrior->WriteFile(&IOWarriorOutputReport, 8, BytesWritten);

  // show the data in the history listbox
  Str.sprintf("W %02X  ", IOWarriorOutputReport.ReportID);
  for(I = 0; I < BytesWritten; I++)
    Str += S.sprintf("%02X ", IOWarriorOutputReport.LCDBytes[I-1]);
  HistoryListBox->ItemIndex = HistoryListBox->Items->Add(Str);
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::SaveBtnClick(TObject *Sender)
{
  if(SaveDialog->Execute())
    HistoryListBox->Items->SaveToFile(SaveDialog->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TLCDMainForm::HidCtlDeviceData(TJvHidDevice *HidDev,
      BYTE ReportID, const Pointer Data, WORD Size)
{
  WORD I;
  AnsiString Str;
  AnsiString S;
  char *P;

  P = (char *) Data;
  // show all bytes of the report in hex
  Str.sprintf("R %02X  ", ReportID);
  for(I = 0; I < Size; I++)
    Str += S.sprintf("%02X ", (unsigned char) P[I]);
  Str += Str + "  \"";
  // only show the net content as letters
  for (I = 1; I < P[0] & 0x07; I++)
    if((unsigned char) P[I] >= ' ')
      Str += P[I];
    else
      Str += '.';
  Str += "\"";
  HistoryListBox->ItemIndex = HistoryListBox->Items->Add(Str);
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产做a爰片久久毛片| 日韩精品福利网| 波多野结衣中文字幕一区二区三区| 久久久久青草大香线综合精品| 国内成+人亚洲+欧美+综合在线| 精品剧情v国产在线观看在线| 国产在线精品免费av| 日本一区二区三级电影在线观看 | 中文成人av在线| 成人av网站大全| 亚洲一级二级在线| 精品国产免费人成电影在线观看四季| 精品一区二区三区在线观看 | 日韩理论片网站| 欧美亚洲国产一区二区三区va | 国产精品主播直播| 亚洲日本在线天堂| 欧美情侣在线播放| 粉嫩一区二区三区性色av| 中文字幕二三区不卡| 欧美伊人精品成人久久综合97| 蜜臀av在线播放一区二区三区| 久久久综合九色合综国产精品| 成人动漫中文字幕| 日韩在线一区二区| 国产精品免费视频观看| 欧美人妖巨大在线| 国产99久久久国产精品潘金| 五月天激情综合| 国产午夜精品理论片a级大结局| 色综合一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕在线免费不卡| 911精品国产一区二区在线| 国产精品一区二区久久精品爱涩| 亚洲一区影音先锋| 欧美国产日韩a欧美在线观看| 欧美高清视频不卡网| 成人av午夜电影| 久久精品国产一区二区| 亚洲视频一区在线观看| 2021中文字幕一区亚洲| 精品视频在线免费观看| 不卡一卡二卡三乱码免费网站| 日韩精品一二三区| 一区二区欧美视频| 亚洲国产经典视频| 亚洲精品一区二区在线观看| 欧美美女一区二区在线观看| 99r精品视频| 国产精品自拍三区| 久久99久久精品欧美| 亚洲高清免费观看 | 中文字幕第一页久久| 日韩欧美在线123| 欧美亚州韩日在线看免费版国语版| 国产电影一区在线| 蜜臀va亚洲va欧美va天堂 | 欧美在线视频不卡| 99国产精品久| va亚洲va日韩不卡在线观看| 激情国产一区二区| 韩国av一区二区三区在线观看| 香蕉成人伊视频在线观看| 一区二区三区精品在线| 亚洲色图视频网| 亚洲人成小说网站色在线| 欧美高清在线一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 国产欧美精品一区二区色综合| 精品国产欧美一区二区| 精品日韩一区二区三区| 日韩欧美成人激情| 日韩一区二区三区四区| 欧美一级理论片| 精品黑人一区二区三区久久| 日韩欧美三级在线| 精品国一区二区三区| 精品va天堂亚洲国产| 精品久久久久香蕉网| 精品美女被调教视频大全网站| 26uuu亚洲综合色| 久久青草欧美一区二区三区| 国产视频一区二区在线观看| 亚洲国产高清在线| 亚洲色图第一区| 亚洲欧美激情在线| 亚洲午夜电影在线| 偷窥国产亚洲免费视频| 毛片一区二区三区| 久久国内精品自在自线400部| 久久99在线观看| 国产91精品精华液一区二区三区| 99精品国产视频| 欧美男同性恋视频网站| 日韩一卡二卡三卡| 国产日韩在线不卡| 樱桃国产成人精品视频| 日韩精品乱码av一区二区| 狠狠色丁香婷婷综合| 91伊人久久大香线蕉| 欧美性色黄大片手机版| 欧美α欧美αv大片| 欧美激情一区二区| 亚洲一区二区三区三| 老司机免费视频一区二区| 丁香亚洲综合激情啪啪综合| 在线观看中文字幕不卡| 精品国产电影一区二区| 亚洲老妇xxxxxx| 日本不卡不码高清免费观看| 国产一区二区视频在线| 在线观看三级视频欧美| 欧美一级片在线| 国产精品麻豆久久久| 亚洲国产成人tv| 国产一区不卡精品| 欧美亚洲国产bt| 久久久美女艺术照精彩视频福利播放| 亚洲美女视频在线观看| 久久国产夜色精品鲁鲁99| 99在线精品视频| 欧美剧情电影在线观看完整版免费励志电影 | 成人黄色777网| 91久久精品网| 国产精品沙发午睡系列990531| 日韩国产成人精品| 中文字幕中文字幕在线一区 | 欧美精品一区二区三区蜜桃视频| 国产精品网站导航| 水蜜桃久久夜色精品一区的特点| 国产盗摄精品一区二区三区在线| 欧美日韩一区在线| 国产精品伦理一区二区| 久久99精品网久久| 欧美久久婷婷综合色| 亚洲视频一区在线| 国产 日韩 欧美大片| 日韩精品专区在线影院重磅| 亚洲国产精品精华液网站| 91亚洲大成网污www| 久久久久久久久97黄色工厂| 免费观看在线综合色| 在线观看视频91| 亚洲伦在线观看| 成人av在线影院| 国产三区在线成人av| 久久99最新地址| 日韩一级欧美一级| 爽好多水快深点欧美视频| 欧亚洲嫩模精品一区三区| 精品免费国产二区三区| 午夜精品福利久久久| 色偷偷久久人人79超碰人人澡| 欧美激情综合五月色丁香 | 成人禁用看黄a在线| 久久综合丝袜日本网| 久久精品国产亚洲一区二区三区| 51精品视频一区二区三区| 天堂久久久久va久久久久| 欧美日韩一区二区在线观看视频 | 日本一道高清亚洲日美韩| 在线观看亚洲精品| 一区二区三区欧美日韩| 色偷偷成人一区二区三区91| 一区二区三区国产| 欧美亚洲综合网| 天天综合色天天综合| 3d动漫精品啪啪| 蜜臀av一区二区| 久久亚洲综合色| 成人激情小说网站| 亚洲图片激情小说| 在线这里只有精品| 亚洲国产日韩精品| 日韩精品资源二区在线| 国产精品正在播放| 自拍视频在线观看一区二区| 91极品视觉盛宴| 日本欧美在线观看| 国产夜色精品一区二区av| www.99精品| 午夜精品福利在线| 精品久久久三级丝袜| 成人av电影在线观看| 亚洲一区影音先锋| 日韩欧美www| 成人va在线观看| 亚洲午夜久久久久中文字幕久| 欧美一区二区日韩| 丁香天五香天堂综合| 亚洲一卡二卡三卡四卡| 精品日韩成人av| 91女人视频在线观看| 日韩国产精品久久| 欧美激情综合五月色丁香小说| 欧洲一区二区av| 国产一区不卡视频| 亚洲一区在线观看免费| 精品电影一区二区三区|