Добрый день.
Подскажите новичку есть ли возможность внутри одной из процедур дождаться срабатывания процедуры прихода байтов из компорта.
процедура срабатывания прихода байтов в модуле компорта описана как
Код:
TReadEvent = procedure(Sender: TObject; ReadBytes: array of Byte; CRC_Err:Boolean;RW_Reguest:Byte) of object;
published
property OnRead: TReadEvent read FReadEvent write FReadEvent;
в основном модуле она описана как:
Код:
procedure FOnRead(Sender: TObject; ReadBytes: array of Byte;
CRC_Err: Boolean; FR_Reguest:Byte);
далее в implementation
далее в конструкторе текущего модуля
Код:
Port:=TComPort.Create(PortComName,BaudRateCom);
Port.OnRead := FOnRead;
Далее есть функция
Код:
function TMR.FReadHoldingRegistr(ID, CodeFunction, RegistrAdress, SizeDataField: Byte): Single;
var
WriteCOm: array [0..7] of Byte;
begin
......
Port.Write(WriteCOm,0);
В этом месте нужно дождатся срабатывания процедуры прихода байтов из компорта, которое и установит поле FSingle.
Result:=FSingle;
В данный момент она сначала выходит из функции (соответственно результат 0,000), а только затем срабатывает процедура прихода байтов из порта. подскажите что переделать или как изменить код чтобы все работало.