Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

 private

FPort:TPort;

FBaudRate:TBaudRate;

FParity:TParity;

FDataBits:TDataBits;

FStopBits:TStopBits;

FReadBufferSize:Word;

FWriteBufferSize:Word;

FRxFull:Word;

FTxLow:Word;

FEvents:TCommEvents;

FOnEvent:TNotifyEventEvent;

FOnReceive:TNotifyReceiveEvent;

FOnTransmit:TNotifyTransmitEvent;

FWindowHandle:hWnd;

hComm:Integer;

HasBeenLoaded:Boolean;

Error:Boolean;

procedure SetPort(Value:TPort);

procedure SetBaudRate(Value:TBaudRate);

procedure SetParity(Value:TParity);

procedure SetDataBits(Value:TDataBits);

procedure SetStopBits(Value:TStopBits);

procedure SetReadBufferSize(Value:Word);

procedure SetWriteBufferSize(Value:Word);

procedure SetRxFull(Value:Word);

procedure SetTxLow(Value:Word);

procedure SetEvents(Value:TCommEvents);

procedure WndProc(var Msg:TMessage);

procedure DoEvent;

procedure DoReceive;

procedure DoTransmit;

 protected

procedure Loaded; override;

 public

constructor Create(AOwner:TComponent); override;

destructor Destroy; override;

procedure Write(Data:PChar; Len:Word);

procedure Read(Data:PChar; Len:Word);

function IsError:Boolean;

 published

property Port:TPort read FPort write SetPort default PortDefault;

property BaudRate:TBaudRate read FBaudRate write SetBaudRate default BaudRateDefault;

property Parity:TParity read FParity write SetParity default ParityDefault;

property DataBits:TDataBits read FDataBits write SetDataBits default DataBitsDefault;

property StopBits:TStopBits read FStopBits write SetStopBits default StopBitsDefault;

property WriteBufferSize:Word read FWriteBufferSize write SetWriteBufferSize default WriteBufferSizeDefault;

property ReadBufferSize:Word read FReadBufferSize write SetReadBufferSize default ReadBufferSizeDefault;

property RxFullCount:Word read FRxFull write SetRxFull default RxFullDefault;

property TxLowCount:Word read FTxLow write SetTxLow default TxLowDefault;

property Events:TCommEvents read FEvents write SetEvents default EventsDefault;

property OnEvent:TNotifyEventEvent read FOnEvent write FOnEvent;

property OnReceive:TNotifyReceiveEvent read FOnReceive write FOnReceive;

property OnTransmit:TNotifyTransmitEvent read FOnTransmit write FOnTransmit;

 end;

procedure Register;

implementation

procedure TComm.SetPort(Value:TPort);

const CommStr:PChar='COM1:';

begin

 FPort:=Value;

 if (csDesigning in ComponentState) or (Value=tptNone) or (not HasBeenLoaded) then exit;

 if hComm>=0 then CloseComm(hComm);

 CommStr[3]:=chr(48+ord(Value));

 hComm:=OpenComm(CommStr,ReadBufferSize,WriteBufferSize);

 if hComm<0 then begin

Error:=True;

exit;

 end;

 SetBaudRate(FBaudRate);

 SetParity(FParity);

 SetDataBits(FDataBits);

 SetStopBits(FStopBits);

 SetEvents(FEvents);

 EnableCommNotification(hComm,FWindowHandle,FRxFull,FTxLow);

end;

procedure TComm.SetBaudRate(Value:TBaudRate);

Поделиться с друзьями: