Reconhecimento do alarme direto da Popup

Pessoal,
Bom dia!

Criei uma popup que abre automaticamente quando um determinado alarme fica ativo. Esta parte está funcionando tudo normalmente.
Nesta popup aparece somente o tag e a mensagem referente ao alarme e um botão de “Fechar Tela”. Minha ideia é que ao clicar no botão para sair o respectivo alarme já fosse reconhecido.

Já pesquisei um pouco no KnowledgeBase e somente encontrei dicas relacionadas ao objeto E3Alarm, porém como na Popup não tem esse objeto, fiquei perdido.

Será que é possivel? Alguém tem alguma sugestão?

Obrigado por enquanto.

Euler S. Santos

Na rotina que chama a abertura da popup:

Sub OpenScreenOnAlarm_OnAlarm()
	Dim lFlag
	Dim oAlarm
	
	lFlag =  1 + 2 + 16  + 256 + 2048
	
	Set oAlarm = Application.GetObject("Dados.MyAlarm")
	
	' Passa objeto alarme como argumento.
	Parent.DoModal "Popup", , , , , , oAlarm, lFlag
End Sub

Na popup de warning:

Sub Popup_OnPreShow(Arg)
	' Armazena PathName em alguma propriedade, ou TagInterno
	' ou registro do Windows.
	Me.DocString = Arg.PathName
End Sub
Sub Popup_OnHide()
	Set oAlarm = Application.GetObject( Me.DocString )
	oAlarm.Ack( Application.User )
End Sub

Leandro,

Muito obrigado pelo ajuda.

Fiz alguns pequenos ajustes para apreveitar o que eu já tinha feito, mas o reconhecimento funcionou perfeitamente no fechamento da Tela. Segue abaixo como ficaram meus scripts:

No script que chama a Popup:

Sub AlarmeAtivo_Alarme()
'Abre Tela correspondente ao alarme que a chamou
Arg = Application.GetObject(“Dados.TagAlarme”).PathName

'Parent.DoModal(Screen, Title, Left, Top, Width, Height, Arg, Flags)
Application.DoModal “PopupAlarme”, ,635,350, , ,Arg, 1+2+64
End Sub

Na popup de warning :

Sub PopupAlarme_OnPreShow(Arg)
'Passa informação do alarme para a tela.
Item(“xControls”).Fonte = Arg
Caption = “ALERTA DE ALARME CRÍTICO”

'Armazena PathName na TagInterna que dispara o alarme
Set oAlarm = Item(“xControls”).Fonte
Application.Item(“AlarmeAtivo”).Value = oAlarm.PathName
End Sub

Sub PopupAlarme_OnHide()
'Atribui o caminho da variável em alarme
oPathAlarme = Application.Item(“AlarmeAtivo”).Value

'Reconhece o alarme atribuido no caminho acima
Set oAlarm = Application.GetObject(oPathAlarme & “.ConfigAlarmes1.Falha”)
oAlarm.Ack(Application.User)
End Sub