Данный класс с экземпляром TIDUDPServer:
unit udpbroadcast_fm;
TUDPBC_FM = class( TObject )
protected
IdUDPServer: TIdUDPServer;
Timer: TTimer;
...
procedure IdUDPServerUDPRead( AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle );
procedure TimerOnTimer( Sender: TObject );
public
constructor Create;
function SendDiscover: integer;
properties
...
end;
function TUDPBC_FM.SendDiscover: integer;
begin
...
IdUDPServer.Broadcast( udpDiscovery, BCport );
...
end;
Я использую этот класс для отправки широковещательного сообщения UDP. Мой вопрос заключается в том, как я могу «сигнализировать» обратно в экземпляр формы/пользовательского класса из обработчика событий onTimer («TimerOnTimer») «Timer» (определяется как < em>TUDPBC_FM)?
Интервал таймера установлен на 2000 мс, поэтому у всех устройств есть две секунды, чтобы ответить на трансляцию, затем я хочу отправить сигнал экземпляру формы или класса.
В моем приложении VCL я использовал сообщения для этого, но теперь я на firemonkey.
Может быть, единственный выход — использовать другой подход? Например, поставить таймер в качестве поля формы?).
unit mstcc_fm;
Tmstcc = class(TObject)
protected
Fudpbc : TUDPBC_FM;
...
public
function msts_Discover: integer;
...
end;
function Tmstcc.msts_Discover: integer;
begin
...
Fudpbc.SendDiscover;
...
end;
Форма блока:
unit main_fm;
...
procedure TfrmMain.btnDiscoverClick(Sender: TObject);
begin
mstcc.msts_Discover;
...
end;