Clipper On Line • Ver Tópico - IsWindowActive(Form_x) retorna sempre .F.

IsWindowActive(Form_x) retorna sempre .F.

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

IsWindowActive(Form_x) retorna sempre .F.

Mensagempor NiltonGM » 25 Jun 2018 12:24

Pessoal, me deparei com algo estranho que nunca tinha me ocorrido, sempre usei a função IsWindowActive() para saber se um formulário já se encontrava aberto para não reinicia-lo, uma prática comum, porem nesse novo projeto que estou trabalhando, ao abrir um terceiro formulário a partir de um ondblclick() na grid do segundo formulário, essa função está sempre retornando .F. fazendo recarregar o formulário, aí dá erro!
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
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

IsWindowActive(Form_x) retorna sempre .F.

Mensagempor NiltonGM » 25 Jun 2018 14:48

Descobri o que estava errado, erro básico, esqueci de ativar o form após o LOAD com editastatus.Active.
Como pude esquecer isso?! rs
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro