Fórum Componente jedi USB HID no Firemonkey #616279
15/07/2021
0
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
Curtir tópico
+ 0
Responder
Posts
24/07/2021
Vtrx
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;
...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)