Página 1 de 3
Desabilitar "X" da window\Dialog
Enviado: 01 Ago 2007 16:33
por ICO
Boa Tarde Pessoal..
Vi um tópico aqui falando do Buttonx.C para desabilitar o "X" das dialogs, compilei junto com meus PRGs e não sei como utiliza-lo, mesmo tranformando o buttonx.C em buttonx.OBJ não funciona.. alguém poderia me dar uma luz.. :xau
desde já obrigado..
Enviado: 01 Ago 2007 16:43
por Maligno
Bem-vindo ao fórum.
O tal BUTTONX, aliás, precursor da biblioteca WAPI (seção Clipper), cujo fonte foi feito por mim, é um programa executável
stand-alone. Se você não adaptá-lo convenientemente para o Xharbour, não será possível utilizá-lo, mesmo geando seu objeto.
Enviado: 01 Ago 2007 16:49
por sygecom
Bem vindo ao forum..
Se vc linkar a GTWVW pode usar a função abaixo:
Abraços
Leonardo Machado
Enviado: 01 Ago 2007 18:05
por ICO
Primeiramente obrigado pelas respostas..
Não sei se postei no forum certo, se não me desculpem.
Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour

:'(
Sygecom, onde encontro esta GTWVW

se eu compila-la junto com meus PRGs vai rodar normalmente ?? pois uso FW 2.40 xharbour 0.99.60 com xDev para compilar..
:xau
Enviado: 01 Ago 2007 18:14
por Maligno
Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour

Da forma como está até tem, mas você terá de executar o BUTTONX.EXE que acompanha o ZIP, a exemplo do que hoje fazemos com a LIB WAPI. Aliás, não lembro desta versão do BUTTONX, mas a versão que fiz na WAPI não só pode desabilitar o botão X, como também fazer sumir o ítem de menu que encerra a sessão DOS.
Enviado: 01 Ago 2007 18:19
por sygecom
Vc não disse que usava a Fivewin..., mas tente usar junto ...não sei se vai dar problema...só testando mesmo...a LIB se encontra nas CONTRIB ...compile ela com a versão do xharbour que vc esta usando !!!
http://sourceforge.net/project/download ... irror=ufpr
Abraços
Leonardo Machado
Enviado: 01 Ago 2007 18:20
por ICO
Maligno escreveu:Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour

Da forma como está até tem, mas você terá de executar o BUTTONX.EXE que acompanha o ZIP, a exemplo do que hoje fazemos com a LIB WAPI. Aliás, não lembro desta versão do BUTTONX, mas a versão que fiz na WAPI não só pode desabilitar o botão X, como também fazer sumir o ítem de menu que encerra a sessão DOS.
Bem então este buttonx.exe que baixei serve para trabalhar em modo console ?? porque dentro da minha aplicação não funcionou.
depois de compilar junto com meus prgs, devo colocar alguma coisa como
buttonx="off"
ownd:bottunx:="off" como vi num exemplo num site ??
Obrigado..
Enviado: 01 Ago 2007 18:27
por Maligno
Não. O programa BUTTONX.EXE é um programa de linha de comando e serve para desabilitar o botão X das janelas. Execute-o por linha de comando no DOS e veja o resultado. A sintaxe é BUTTONX OFF para desabilitar e BUTTONX ON para reabilitar. Se você pode executar essa linha de comando pelo Xharbour, você pode fazê-lo funcionar perfeitamente. Mas eu só quis dizer que o BUTTONX da biblioteca WAPI tem mais recursos. Só. Talvez a biblioteca indicada pelo Leonardo tenha essas características também.
Enviado: 02 Ago 2007 09:27
por ICO
Pessoal..
Obrigado pelas respostas..
mas não consegui. faltam includes como hbole.h, por enquanto vou tentar outra solução como por um válid ao tentar fechas a window e dialogs, depois retorno a esta empreitada...
Obrigado..
Abraços
Enviado: 02 Ago 2007 20:46
por sygecom
Enviado: 03 Ago 2007 16:14
por ICO
Eu já tinha visto aquele tópico... Algun tempo tempo atrás alguém lá que não lembro quem era estava querendo isto também, agora vou reativar aquele tópico e ver se ja acharam a solução.. qq coisa volto aqui e reporto..
mesmo assim obrigadão...
Abraços..
Enviado: 03 Ago 2007 17:14
por ICO
Se alguém se interessar pela dica ...
Solução Postada by Maracelo Michels do Forum
www.Fivewin.com.br
lsai:=.f.
Define Dialog odlg...
define buttom obtsai ... action(lsai:=.t.,odlg:end())
activate dialog odlg valid lsai
Desabilita mesmo o "X" de uma dialog..
Enviado: 03 Ago 2007 23:37
por Stanis Luksys
ICO escreveu:lsai:=.f.
Define Dialog odlg...
define buttom obtsai ... action(lsai:=.t.,odlg:end())
activate dialog odlg valid lsai
Não existe uma outra maneira mais simples? Valid com .f. em janela me parece gambiarra... Porque já não coloca algo do tipo:
Assim pelo menos o botão funciona.
Na mingui basta definir a janela com a clausula NOSYSMENU, que tira todo aquele menu do lado ESQUERDO da janela, além dos botões padrões.
Isto é importante, verifique se deste modo citado com valid, num da pra dar um ALT+ESPAÇO (ou clicar no ícone da janela) e fechar mesmo assim. Se der num resolve acho né?
Falou!
Enviado: 06 Ago 2007 08:59
por ICO
Stanis Luksys escreveu:ICO escreveu:lsai:=.f.
Define Dialog odlg...
define buttom obtsai ... action(lsai:=.t.,odlg:end())
activate dialog odlg valid lsai
Não existe uma outra maneira mais simples? Valid com .f. em janela me parece gambiarra... Porque já não coloca algo do tipo:
Assim pelo menos o botão funciona.
Na mingui basta definir a janela com a clausula NOSYSMENU, que tira todo aquele menu do lado ESQUERDO da janela, além dos botões padrões.
Isto é importante, verifique se deste modo citado com valid, num da pra dar um ALT+ESPAÇO (ou clicar no ícone da janela) e fechar mesmo assim. Se der num resolve acho né?
Falou!
Ola Stanis, Tudo Bem ??
Veja bem, a intenção é esta mesma, desabilitar o botão (nao funcionar)..
Outra coisa, ainda estou fazendo testes com a minigui, por enquanto estou usando somente FiveWin for xHarbour, e se eu desabilitar o NOSYSMENU, some também o icone da aplicação, assim como das dialogs.. Repito isso FiveWin e xHarbour.. Não sei com a minigui..
Abraços..
Enviado: 06 Ago 2007 09:57
por MARCELOG
Na sua seção de funções/ procedures em C, adicione a função abaixo,
e chame X_NOCLOSE() para desabilitar o botão "X".
Código: Selecionar todos
HB_FUNC( X_NOCLOSE )
{
USHORT usWinNum = WVW_WHICH_WINDOW;
HMENU hMenu = GetSystemMenu(s_pWindows[usWinNum]->hWnd, FALSE);
if (hMenu)
{
DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND );
DrawMenuBar( s_pWindows[usWinNum]->hWnd );
}
}
MarceloG
Ps: adaptação da wvw_noclose() da gtwvw.
Atenção: não consegui baixar a gtwvw para substituir as constantes indicadas na função que provavelmente estão em um arquivo .ch ou .h dos sources.
Talvez o Malígno ou o Stanis, que são feras em C, possam adaptar mais rapidamente.
Acho que trata-se do handle da janela que, se for 0, refere-se a janela atual.