Hola Citlali.
Estuve siguiendo todos tus mensajes. Espero que este todavia te sirva.
Si estas desarrollando un punto de venta te recomiendo que utilices tecnologia OPOS que es el standar desarrollado por Microsoft y las principales industrias de Hardware para aplicaciones de punto de venta.
A grandes pasos debes hacer lo siguiente.
1. Chechar si los dispositivos que utilices (en este caso el cajon de dinero) esta soportado por OPOS.
2. Instalar los componentes standarizados OCX de la siguiente pagina
http://www.monroecs.com/oposccos.htm
3. Instalar el ADK de tu fabricante. Este viene especificada en la documentación de tu dispositivo.
4. Instalar los componentes POS OCX en Delphi. Esto te va a crear componetnes no visuales los cuales te facilitaran enormemente el desarrollo.
5. Crear las rutinas especializadas para el control de tus dispositivos.
Te anexo la que yo utilizo para el control del cajon.
OposCajon := TOPOSCashDrawer.Create(Application);
if OposCajon.Open(IntToStr(Num_Cajon)) <> OPOS_SUCCESS
Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' Open E:'+IntToStr(OposCajon.ResultCode)+' '+getOPOSError(OposCajon.ResultCode));
if OposCajon.ClaimDevice(1000) <> OPOS_SUCCESS Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' Claim E:'+IntToStr(OposCajon.ResultCode)+' '+getOPOSError(OposCajon.ResultCode));
OposCajon.DeviceEnabled := True;
if OposCajon.ResultCode <> OPOS_SUCCESS Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' E:'+getOPOSError(OposCajon.ResultCode));
XModulo.logMsg('OPOS Inicialización de Cajon '+IntToStr(OposCajon.ResultCode)+' '+IntToStr(Num_Cajon));
Result := True;
Es mucho mas sencillo de lo que aparenta..
Si tienes dudas con gusto te puedo ayudar.
Saludos!!!