Показать сообщение отдельно
  #1  
Старый 12.04.2010, 16:09
Aless_me Aless_me вне форума
Прохожий
 
Регистрация: 12.04.2010
Сообщения: 1
Репутация: 10
По умолчанию Ошибка при вызова процедуры пакета

Добрый день всем! Есть такая проблема. Я создал процедуры по работе с портами 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: Пользуемся тегами!

Заранее спасибо.
Ответить с цитированием