|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка при вызова процедуры пакета
Добрый день всем! Есть такая проблема. Я создал процедуры по работе с портами rs-232. Код уместил в пакет (bpl). При вызова процедур из формы выдает ошибку.
Вот код некоторых процедур из пакета Код:
unit PortDevice; interface uses Windows, SysUtils, Classes; type TN4_11 = class private CT:TCommTimeouts; F:THandle; DCB:TDCB; Over:TOverlapped; ByteWritten: Dword; str:string; public procedure Connect(Port:string); procedure Disconnect; end; var N4_11:TN4_11; implementation procedure TN4_11.Connect(Port:string); begin F := CreateFile(PChar('\\.\'+Port), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); //параметры порта GetCommState(F, DCB); DCB.BaudRate := 9600; DCB.Parity := NOPARITY; DCB.ByteSize := 8; DCB.StopBits := ONESTOPBIT; SetCommState(F, DCB); GetCommTimeouts(F, ct); CT.WriteTotalTimeoutConstant := 0; CT.WriteTotalTimeoutMultiplier := 0; CT.ReadTotalTimeoutConstant := 5; CT.ReadIntervalTimeout := MAXDWORD; CT.ReadTotalTimeoutMultiplier := MAXDWORD; SetCommTimeouts(F, CT); PurgeComm(F,PURGE_TXCLEAR or PURGE_RXCLEAR); Over.hEvent := CreateEvent(nil, True, False, nil); EscapeCommFunction(F, RTS_CONTROL_HANDSHAKE); EscapeCommFunction(F, DTR_CONTROL_HANDSHAKE); end; procedure TN4_11.Disconnect; begin CloseHandle(F); end; Заранее спасибо. Последний раз редактировалось Admin, 12.04.2010 в 16:18. |