Componente jedi USB HID no Firemonkey
Tenho os componente Jedi instalado no Delphi tokio,sempre usei o componente USBHidcontrol em VCL desde o Delphi 7.
Precisei usar esta comunicação num aplicativo Firemonkey no Windows,para utilizar 3D,mas o com´ponente não está disponível no Firemonkey.
Pesquisando na internet, desenvolvi um método para usar em firemonkey.
...
Type
HidCtl: TJvHidDeviceController;
...
procedure HidCtlDeviceChange(Sender: TObject);
function DeviceName(HidDev: TJvHidDevice): string;
procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;const
Data: Pointer; Size: Word);
function HidCtlEnumerate(HidDev: TJvHidDevice;const Idx: Integer):
Boolean;
procedure HidCtlRemoval(HidDev: TJvHidDevice);
...
public
{ Public declarations }
CurrentDevice: TJvHidDevice;
...
procedure TFrmMain.FormCreate(Sender: TObject);
var;
H: TJvHidDeviceController;
begin
H:=TJvHidDeviceController.Create(self);
H.DevPollingDelayTime:=0;
H.DevThreadSleepTime:=100;
H.Name:='HidCtl';
H.Tag:=0;
H.Version:='1.0.35';
H.OnDeviceChange:=HidCtlDeviceChange;
H.OnDeviceData:=HidCtlDeviceData;
H.OnEnumerate:=HidCtlEnumerate;
H.OnRemoval:=HidCtlRemoval;
//.....................................
Funciona perfeitamente, mas na primeira vez que a compilação é feita,
aparece um aviso de que HIDCTL não tem um componente relacionado.
Escolhendo "não remover" a compilação continua normalmente e o
aviso só volta se eu mudar algo no código.
Minha implementação está errada ou é outra maneira que devo usá-la?
Precisei usar esta comunicação num aplicativo Firemonkey no Windows,para utilizar 3D,mas o com´ponente não está disponível no Firemonkey.
Pesquisando na internet, desenvolvi um método para usar em firemonkey.
...
Type
HidCtl: TJvHidDeviceController;
...
procedure HidCtlDeviceChange(Sender: TObject);
function DeviceName(HidDev: TJvHidDevice): string;
procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;const
Data: Pointer; Size: Word);
function HidCtlEnumerate(HidDev: TJvHidDevice;const Idx: Integer):
Boolean;
procedure HidCtlRemoval(HidDev: TJvHidDevice);
...
public
{ Public declarations }
CurrentDevice: TJvHidDevice;
...
procedure TFrmMain.FormCreate(Sender: TObject);
var;
H: TJvHidDeviceController;
begin
H:=TJvHidDeviceController.Create(self);
H.DevPollingDelayTime:=0;
H.DevThreadSleepTime:=100;
H.Name:='HidCtl';
H.Tag:=0;
H.Version:='1.0.35';
H.OnDeviceChange:=HidCtlDeviceChange;
H.OnDeviceData:=HidCtlDeviceData;
H.OnEnumerate:=HidCtlEnumerate;
H.OnRemoval:=HidCtlRemoval;
//.....................................
Funciona perfeitamente, mas na primeira vez que a compilação é feita,
aparece um aviso de que HIDCTL não tem um componente relacionado.
Escolhendo "não remover" a compilação continua normalmente e o
aviso só volta se eu mudar algo no código.
Minha implementação está errada ou é outra maneira que devo usá-la?
Vtrx
Curtidas 0
Respostas
Vtrx
15/07/2021
Tenho os componente Jedi instalado no Delphi tokio,sempre usei o componente USBHidcontrol em VCL desde o Delphi 7.
Precisei usar esta comunicação num aplicativo Firemonkey no Windows,para utilizar 3D,mas o com´ponente não está disponível no Firemonkey.
Pesquisando na internet, desenvolvi um método para usar em firemonkey.
...
Type
HidCtl: TJvHidDeviceController;
...
procedure HidCtlDeviceChange(Sender: TObject);
function DeviceName(HidDev: TJvHidDevice): string;
procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;const
Data: Pointer; Size: Word);
function HidCtlEnumerate(HidDev: TJvHidDevice;const Idx: Integer):
Boolean;
procedure HidCtlRemoval(HidDev: TJvHidDevice);
...
public
{ Public declarations }
CurrentDevice: TJvHidDevice;
...
procedure TFrmMain.FormCreate(Sender: TObject);
var;
H: TJvHidDeviceController;
begin
H:=TJvHidDeviceController.Create(self);
H.DevPollingDelayTime:=0;
H.DevThreadSleepTime:=100;
H.Name:='HidCtl';
H.Tag:=0;
H.Version:='1.0.35';
H.OnDeviceChange:=HidCtlDeviceChange;
H.OnDeviceData:=HidCtlDeviceData;
H.OnEnumerate:=HidCtlEnumerate;
H.OnRemoval:=HidCtlRemoval;
//.....................................
Funciona perfeitamente, mas na primeira vez que a compilação é feita,
aparece um aviso de que HIDCTL não tem um componente relacionado.
Escolhendo "não remover" a compilação continua normalmente e o
aviso só volta se eu mudar algo no código.
Minha implementação está errada ou é outra maneira que devo usá-la?
Precisei usar esta comunicação num aplicativo Firemonkey no Windows,para utilizar 3D,mas o com´ponente não está disponível no Firemonkey.
Pesquisando na internet, desenvolvi um método para usar em firemonkey.
...
Type
HidCtl: TJvHidDeviceController;
...
procedure HidCtlDeviceChange(Sender: TObject);
function DeviceName(HidDev: TJvHidDevice): string;
procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;const
Data: Pointer; Size: Word);
function HidCtlEnumerate(HidDev: TJvHidDevice;const Idx: Integer):
Boolean;
procedure HidCtlRemoval(HidDev: TJvHidDevice);
...
public
{ Public declarations }
CurrentDevice: TJvHidDevice;
...
procedure TFrmMain.FormCreate(Sender: TObject);
var;
H: TJvHidDeviceController;
begin
H:=TJvHidDeviceController.Create(self);
H.DevPollingDelayTime:=0;
H.DevThreadSleepTime:=100;
H.Name:='HidCtl';
H.Tag:=0;
H.Version:='1.0.35';
H.OnDeviceChange:=HidCtlDeviceChange;
H.OnDeviceData:=HidCtlDeviceData;
H.OnEnumerate:=HidCtlEnumerate;
H.OnRemoval:=HidCtlRemoval;
//.....................................
Funciona perfeitamente, mas na primeira vez que a compilação é feita,
aparece um aviso de que HIDCTL não tem um componente relacionado.
Escolhendo "não remover" a compilação continua normalmente e o
aviso só volta se eu mudar algo no código.
Minha implementação está errada ou é outra maneira que devo usá-la?
RESOLVIDO.
Caso alguém precise usar o componente HIDControll no Firemonkey,aqui vai as alterações:
type TForm1 = class(TForm) //HidCtl: TJvHidDeviceController; ... public { Public declarations } CurrentDevice: TJvHidDevice; HidCtl: TJvHidDeviceController; end; ... procedure TForm1.FormCreate(Sender: TObject); TJvHidDeviceController; begin HidCtl := TJvHidDeviceController.Create(self); HidCtl.DevThreadSleepTime:=100; HidCtl.Name:='HidCtl'; HidCtl.Tag:=0; HidCtl.Version:='1.0.34'; HidCtl.OnDeviceChange:=HidCtlDeviceChange; HidCtl.OnDeviceData:=HidCtlDeviceData; HidCtl.OnEnumerate:=HidCtlEnumerate; HidCtl.OnRemoval:=HidCtlRemoval; end; ...
GOSTEI 0