⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usagesmain.cpp

📁 human interface devices.zip 一套组件
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "UsagesMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "JvHidControllerClass"
#pragma resource "*.dfm"
TUsagesForm *UsagesForm;
//---------------------------------------------------------------------------
__fastcall TUsagesForm::TUsagesForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TUsagesForm::HidCtlDeviceChange(TObject *Sender)
{
  TJvHidDevice *Dev;
  int I;

  // HidCtlDeviceChange happens before TUsagesForm.Create completed
  // DevListBox may have not been created yet
  if(DevListBox != NULL)
  {
    // hand back all the devices assigned to the list entries
    for(I = 0; I < DevListBox->Count; I++)
    {
      Dev = (TJvHidDevice *) DevListBox->Items->Objects[I];
      HidCtl->CheckIn(Dev);
      DevListBox->Items->Objects[I] = NULL;
    }
    DevListBox->Items->Clear();
    HidCtl->Enumerate();
  }
}
//---------------------------------------------------------------------------

bool __fastcall TUsagesForm::HidCtlEnumerate(TJvHidDevice *HidDev,
      const int Idx)
{
  TJvHidDevice *Dev;
  int N;
  AnsiString S;

  // add a descriptive entry to the listbox for the device
  if(HidDev->ProductName != NULL)
    N = DevListBox->Items->Add(HidDev->ProductName);
  else
    N = DevListBox->Items->Add(S.sprintf("Device VID=%04X PID=%04X",
      HidDev->Attributes.VendorID, HidDev->Attributes.ProductID));
  // check out the device and assign it to the list entry
  HidCtl->CheckOutByIndex(Dev, Idx);
  DevListBox->Items->Objects[N] = Dev;
  return(true);
}
//---------------------------------------------------------------------------

void __fastcall TUsagesForm::InfoClick(TObject *Sender)
{
  TInfoForm *InfoForm;

  // show info about the device assigned to the list entry
  if(DevListBox->Items->Count > 0 && DevListBox->ItemIndex >= 0)
  {
    InfoForm = new TInfoForm(this);
    InfoForm->Dev = (TJvHidDevice *) DevListBox->Items->Objects[DevListBox->ItemIndex];
    InfoForm->ShowModal();
    delete InfoForm;
  }
}
//---------------------------------------------------------------------------

void __fastcall TUsagesForm::FormShow(TObject *Sender)
{
  // this compensates the possibility that HidCtlDeviceChange
  // may not be able to fill the listbox the first time
  HidCtlDeviceChange(this);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -