Release control em Window Panel

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Prezados, boa tarde!

Estou com um probleminha chato e gostaria do auxílio de vocês. Ao dar RELEASE CONTROL em algum elemento dentro de um window panel, o componente realmente é removido, mas fica uma espécie de sujeira na janela. Gravei um vídeo para deixar em evidência. Para melhor visualização, peço por gentileza pra ver em 720p.

Ao clicar no botão OK e na caixa dialogo Sim ou Não, a função vnp40800ZeraCampos() é chamada.

https://drive.google.com/file/d/1N6Ihcw ... SkWUT/view

No vídeo estou usando wine, mas já testei em Windows e o comportamento é o mesmo.

Este é o código no qual estou faço release control nos componentes dentro do panel.

Código: Selecionar todos

/*
* Zera os campos para que o usuário possa digitar outro caixa
*/
FUNCTION vnp40800ZeraCampos()
    LOCAL oElement, indice := 1
    
    linha := 0

    SetProperty(wwin,'getnrcaixa','value', 0)
    SetProperty(wwin,'getnrorca','value', 0)
    SetProperty(wwin,'gettotal','value', 0)
    SetProperty(wwin,'getnrcaixa','enabled', .T.)
    SetProperty(wwin,'getnrorca','enabled', .T.)

    IF! EMPTY(wcampos)
        FOR EACH oElement iN wcampos
            lbl_tpnum := 'lbl' + StrZero(oElement[1],2,0) + '_descricao'
            get_tpnum := 'get' + StrZero(oElement[1],2,0)

            RELEASE CONTROL &lbl_tpnum OF &wwinPanel
            RELEASE CONTROL &get_tpnum OF &wwinPanel
            indice++
        NEXT
        wcampos := {}
    ENDIF

    SETFOCUS getnrcaixa OF &wwin
RETURN
A pergunta é, alguém já viu ou passou por isso?
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Completando: Estou usando MiniGui Extended
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Release control em Window Panel

Mensagem por JoséQuintas »

Já vi muito disso em GTWVG.... rs

Talvez falte um refresh após soltar o scroll.
A impressão é de que na janela tem o edit na posição anterior e atual ao mesmo tempo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Obrigado pela resposta José Quintas!

Agora a questão é, como faço pra dar refresh em um Window do tipo panel? hahaha

Até onde eu sei, só se pode dar refresh em algum elemento de uma janela, tipo um label ou getbox. Neste caso preciso fazer direto na window. Alguém sabe como fazer isso?

Olhei na documentação da minigui e só tem isso no refresh: http://hmgextended.com/files/manual/index.html
<ParentWindowName>.<ControlName>. Refresh

The Refresh method will send a message to Windows that the client area of the window should be repainted.
A definição do window panel está assim:

Código: Selecionar todos

        DEFINE WINDOW &WinName;
            PARENT &ParentName;  
            ROW PanelRow;
            COL PanelCol; 
            WIDTH WindowWidth; 
            HEIGHT WindowHeight;
            VIRTUAL WIDTH WindowVirtualWidth;
            VIRTUAL HEIGHT WindowVirtualHeight;
            ON INIT nil;
            WINDOWTYPE PANEL

        END WINDOW
Obrigado!!
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Ainda estou vendo algum meio para contornar este problema, qualquer resultado posto aqui :)
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Release control em Window Panel

Mensagem por Nascimento »

vc quer dar um release? ou um destroy?

tipo só fechar a janela panel, ou quer realmente apagar o componente?
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Release nos componentes dentro do panel mesmo

Acho que a gambi da vez vai ser fechar o panel e criar outro toda hora.
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Release control em Window Panel

Mensagem por Heero »

Sério? hahahahaha

F**eu... kkkk
Anexos
Screenshot from 2021-03-19 22-53-51.png
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Responder