Red de conocimientos turísticos - Información de alquiler - Al programar la comunicación serie, si el puerto está ocupado, ¿cómo puedo recibir el mensaje de error?

Al programar la comunicación serie, si el puerto está ocupado, ¿cómo puedo recibir el mensaje de error?

Use try...excepto el control de estructura (este método es el más conveniente y simple, independientemente de si está ocupado o no se abrió)

O use la función CreateFile para juzgar, puede probar:

var

hNewCommFile:Thandle;

comenzar

.....

hNewCommFile:=CreateFile(PChar ('com1'), GENERIC_READ o GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL o FILE_FLAG_ OVERLAPPED, 0);

si hNewCommFile = INVALID_HANDLE_VALUE entonces

showmessage('Error al abrir el puerto serie ' );

......

fin

----------------

intenta

mscomm1.CommPort:=1;

si mscomm1.portopen=false entonces

mscomm1.Settings.inBufferCount:=0;

excepto

comenzar

showmessage('¡error com1!');

aplicación.Terminar

; fin;

--------------

. . . . .

excepto

comenzar

showmessage('¡error com1!

aplicación.Terminar

finalizar; ;

end; //este final es demasiado, deberías eliminarlo

. . . .

procedimiento TForm1.ComboBox1Select(Remitente: TObject);

comenzar

if mscomm1.CommPort:=2;

mscomm1.portopen :=true;

excepto

showmessage('Puerto serie ' combobox1.Text '¡No se puede abrir correctamente!')

end;

El uso de try except para controlar las excepciones se ejecuta en un entorno de depuración y el resultado seguirá apareciendo, por lo que debe ejecutar el archivo ejecutable compilado por separado para ver el efecto de controlar las excepciones

Uso de try except controla las excepciones que se ejecutan en un entorno de depuración.