данного класса с экземпляром TIdUDPServer:FireMonkey - Indy UDP вещания
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;
Im используя этот класс, чтобы отправить сообщение UDP вещания. Мой вопрос заключается в том, что, как я могу «сигнал» обратно в форме/пользовательский экземпляр класса из обработчика событий OnTimer («TimerOnTimer„) из“Таймера» (определяется как TUDPBC_FM поля)?
Интервал таймера был установлен в 2000 мсек, поэтому для всех устройств, отвечающих за широковещательную передачу, требуется две секунды, тогда я хочу отправить сигнал в экземпляр формы или класса.
В моем приложении VCL я использовал сообщения для этого, но теперь im на 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;