Form_Main tipo principal, abre o Form_2 STANDARD autorelease = .F., não uso Form_2.Release, apenas Form_2.Show ou Form_2.Hide, nesse a função IsWindowActive(Form_2) funciona perfeitamente.
No Form_2 há uma grid, ao clicar em uma linha com ondblclick(), eu abro o Form_3, pela primeira vez a função IsWindowAtive() retorna .F., então o Form_3 é criado com LOAD, mas se clicarmos de novo na grid do Form_2 com dbclick() novamente, a função IsWindowActive(Form_3) está sempre retornando .F., isso me forçou a criar uma variável PUBLIC para controlar se o Form_3 já está aberto ou não.
Desconfio que é por causa do Form_2 estar setado para NOAUTORELEASE.
Procedure main_grid_Agenda_ondblclick()
if Is_WindowActive(editastatus) // Essa coisa aqui só está retornando .F.
DoMethod( "editastatus", "SHOW" )
DoMethod( "editastatus", "MINIMIZE" )
DoMethod( "editastatus", "RESTORE" )
DoMethod( "editastatus", "SETFOCUS" )
else
LOAD WINDOW editastatus
ON KEY ESCAPE OF editastatus ACTION editastatus.Release
editastatus.Show
end
Para piorar, esse form (editastatus=Form_3) não esta passando pelo evento OnInit...
Procedure editastatus_form_oninit()
// Não entra nesse evento, mesmo que eu tenha certificado que essa procedure está mensionada no evento OnInit
MsgDebug( {GetProperty( "agenda", "Grid_agenda", "Value" ), GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 1 )} )
editastatus.Label_em.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 1 )
editastatus.Label_das.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 2 )
editastatus.Label_as.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 3 )
editastatus.Label_cliente.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 4 )
editastatus.Label_profissional.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 5 )
editastatus.Label_servico.Value := GetProperty( "agenda", "Grid_Agenda", "CellEx", GetProperty( "agenda", "Grid_agenda", "Value" ), 6 )
Return