Como definir o botão fechar?
Moderador: Moderadores
- Daiane
- Usuário Nível 3

- Mensagens: 122
- Registrado em: 28 Out 2014 16:19
- Localização: Feira de Santana - BA
Como definir o botão fechar?
Pessoal,eu uso o Pelles para desenhar minhas janelas e lá tem a opção de exibir o botão fechar ou não.
mas como faço para definir este botão no código fonte?
Preciso saber disso,pois toda vez que clico no botão fechar a janela retorna de novo
não sei pq motivo isso acontece.
mas como faço para definir este botão no código fonte?
Preciso saber disso,pois toda vez que clico no botão fechar a janela retorna de novo
não sei pq motivo isso acontece.
- Anexos
-
- Clipper On Line • Criar um novo tópico - Google Chrome.png (5.06 KiB) Exibido 1828 vezes
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como definir o botão fechar?
Boa tarde, provavelmente isto acontece, porque no REDEFINE BUTTON... você não usou a CLAUSULA: CANCEL e se tiver um VALID em algum GET, este VALID, está segurando o processo:
Código: Selecionar todos
#include "FiveWin.ch"
FUNCTION Main()
LOCAL oDlg, oFld, aFld,lAdd ,lSave
MsgInfo( "start" )
SetDlgGradient( { { 1, RGB( 199, 216, 237 ), RGB( 237, 242, 248 ) } } )
aFld:={1,4300,121,"Descripción "}
lAdd:=.f.
DEFINE DIALOG oDlg RESOURCE "CtaAux" TRANSPARENT
REDEFINE FOLDER oFld ;
ID 4001 ;
OF oDlg ;
PROMPTS "&1-Principal","&2-Identificación", "&3-Est.Balances";
DIALOGS "CtaAux1" ,"CtaAux2", "CtaAux3"
//--Principal
REDEFINE GET aFld[1] ID 600 OF oFld:aDialogs[1] WHEN .F.
REDEFINE GET aFld[2] ID 601 OF oFld:aDialogs[1] WHEN lAdd
REDEFINE GET aFld[3] ID 602 OF oFld:aDialogs[1] WHEN lAdd
REDEFINE GET aFld[4] ID 603 OF oFld:aDialogs[1]
REDEFINE BUTTON ID 1 OF oDlg ACTION ( oDlg:End(), lSave := .T. ) // OK
REDEFINE BUTTON ID 2 OF oDlg ACTION ( oDlg:End(), lSave := .F. ) ;
CANCEL UPDATE
ACTIVATE DIALOG oDlg CENTERED
IF lSave
MsgInfo('ok')
ENDIF
RETURN nil
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como definir o botão fechar?
Discussão no forum inter:
Código: Selecionar todos
www.FiveTechSoft.com :: Ver tema - Dialog foi fechada com ESCAPE ou <X> ?www.FiveTechSoft.com
FiveTech Software tech support forums
FAQ Buscar Grupos de Usuarios
Perfil Usted no tiene mensajes nuevos Logout [ karinha ]
Dialog foi fechada com ESCAPE ou <X> ?
Foros de discusión -> FiveWin para Harbour/xHarbour
Ver tema anterior :: Ver tema siguiente
AutorMensaje
Rossine
Registrado: 11 Oct 2005
Mensajes: 146
Publicado: Mie Ago 02, 2006 7:58 pm Asunto: Dialog foi
fechada com ESCAPE ou <X> ?
Olá,
Como faço para saber se a dialog esta sendo encerrada pela
tecla ESCAPE ou pelo click no botão <X> da dialog ?
Veja o exemplo abaixo:
Código:
#include "FiveWin.ch"
function Main()
local oDlg
DEFINE DIALOG oDlg
ACTIVATE DIALOG oDlg CENTERED VALID SAIDA( oDlg )
return nil
function SAIDA( oDlg )
if getkeystate( VK_ESCAPE )
msgstop( "Estou encerrando pela tecla ESC !!!" )
endif
if oDlg:isbutonclose() <<<---- Como testar isto ???
msgstop( "Estou encerrando pelo click em <X> !!!" )
endif
return .T.
Obrigado,
Rossine.
Volver arriba
Antonio Linares
Site Admin
Registrado: 06 Oct 2005
Mensajes: 7817
Ubicación: Spain
Publicado: Mie Ago 02, 2006 8:11 pm Asunto:
Rossine,
Puedes hacerlo así:
Código:
function SAIDA( oDlg )
if getkeystate( VK_ESCAPE )
msgstop( "Estou encerrando pela tecla ESC !!!" )
else
MsgInfo( "cerrado de otra forma" )
endif
return .T.
_________________
regards, saludos
Antonio Linares
www.fivetechsoft.com
- Daiane
- Usuário Nível 3

- Mensagens: 122
- Registrado em: 28 Out 2014 16:19
- Localização: Feira de Santana - BA
Como definir o botão fechar?
Na verdade eu não defini o botão <X> então n tem como usar a clausula Cancel
Então oq quero saber é como defino esse botão fechar "X"
Ja q quando eu crio a janela no pelles ele ja vem com o X,não faço nada,na verdade nem sei como ele se comporta.
o meu problema é com o botão X
e não com o botão q eu criei de cancelar,e no botão cancelar eu utilizo a clausula CANCEL
A não ser q eu utilize esse segundo exemplo q vc enviou,faço uma condição p se usar o botão X ele n retornar a janela
Então oq quero saber é como defino esse botão fechar "X"
Ja q quando eu crio a janela no pelles ele ja vem com o X,não faço nada,na verdade nem sei como ele se comporta.
o meu problema é com o botão X
e não com o botão q eu criei de cancelar,e no botão cancelar eu utilizo a clausula CANCEL
A não ser q eu utilize esse segundo exemplo q vc enviou,faço uma condição p se usar o botão X ele n retornar a janela
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como definir o botão fechar?
Eu não uso PELLESC.EXE, mas creio que nas propriedades do dialogo, tem como desabilitar(disable) do componente.
no Workshop.exe seria: System Menu desligado(disable):

Espero que ajude, senão terás que esperar alguém que manje de PELLESC.EXE. Sorry.
abs
no Workshop.exe seria: System Menu desligado(disable):

Espero que ajude, senão terás que esperar alguém que manje de PELLESC.EXE. Sorry.
abs
- Daiane
- Usuário Nível 3

- Mensagens: 122
- Registrado em: 28 Out 2014 16:19
- Localização: Feira de Santana - BA
Como definir o botão fechar?
não queria ter q desabilitar o X
mas vou continuar pesquisando aq p ver se resolvo de outra maneira
mas vou continuar pesquisando aq p ver se resolvo de outra maneira
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como definir o botão fechar?
Veja a variavel STATIC lSaida
Código: Selecionar todos
// Ideia original:
// https://pctoledo.org/forum/viewtopic.php?f=1&t=15482
// Special thanks ao autor do topico: Billy1943.
#Include "FiveWin.ch"
#Include "Directry.ch"
STATIC lSaida := .F., lLigaBotao := .F.
FUNCTION Google_Rua()
LOCAL oWnd, oActiveX, oFnt, oFont, nKey := VK_RETURN
LOCAL cEvents := "", cCookieUser
LOCAL oMapa, mde_uf, mpara_uf, mde_cid, mpara_cid, mde_rua, mpara_rua
LOCAL oGet1, oGet2, oGet3, oGet4, oBusca, oSaida, oDlg, msearch
/*
[13:31:25] Ladinilson Sousa:
acrescente esta linha depois...
*/
//AEVAL(DIRECTORY( "cookie:lsoft@google.com" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
//AEVAL(DIRECTORY( "C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\cookie:user@google.com" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
//IF FILE ( "C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\cookie:user@google.com" )
IF FILE( "C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\cookie:user@google.com/" )
cCookieUser := ( "C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\cookie:user@google.com" )
? cCookieUser
DELETEFILE( cCookieUser )
ENDIF
/*
mpara_uf := "SP" // uf
mpara_cid := "SAO PAULO"//cidade
mpara_rua := "RUA ROCHA"//rua
*/
mpara_uf := space(2)
mpara_cid := space(40) // PINDAMONHANGABA
mpara_rua := space(50)
SetGetColorFocus()
SkinButtons()
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 0, 14 BOLD //UnderLine
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -14 BOLD //UnderLine
DEFINE DIALOG oDlg TITLE "Buscar Rua no Google Maps" ;
FROM 0,0 TO 304, 480 PIXEL COLORS CLR_BLACK, CLR_WHITE TRANSPARENT
oDlg:lHelpIcon := .F.
Set( _SET_INSERT, ! Set( _SET_INSERT ) )
//@ 11, 01 say "PROCURAR :"
@ 1, 2 SAY "PROCURAR A RUA:" OF oDlg UPDATE FONT oFont ;
COLORS CLR_HRED, CLR_WHITE
//@ 13, 01 say "Estado ..:" get mpara_uf picture "@!"
@ 2, 2 SAY "Estado ..:" OF oDlg UPDATE FONT oFnt ;
COLORS CLR_HBLUE, CLR_WHITE
@ 30, 50 GET oGet1 VAR mpara_uf OF oDlg PIXEL SIZE 25, 12 PICTURE "@!" ;
CENTER UPDATE FONT oFnt COLORS CLR_BLACK, CLR_WHITE ;
VALID VALIDA_GET1( mpara_uf )
//@ 14, 01 say "Cidade ..:" get mpara_cid picture "@!"
@ 3, 2 SAY "Cidade ..:" OF oDlg UPDATE FONT oFnt ;
COLORS CLR_HBLUE, CLR_WHITE
@ 45, 50 GET oGet2 VAR mpara_cid OF oDlg PIXEL SIZE 175, 12 PICTURE "@!" ;
UPDATE FONT oFnt COLORS CLR_BLACK, CLR_WHITE ;
VALID VALIDA_GET2( mpara_cid )
//@ 15, 01 say "Endere‡o :" get mpara_rua picture "@!"
@ 4, 2 SAY OemToAnsi( "Endere‡o:" ) OF oDlg UPDATE FONT oFnt ;
COLORS CLR_HBLUE, CLR_WHITE
@ 65, 50 GET oGet3 VAR mpara_rua OF oDlg PIXEL SIZE 185, 12 PICTURE "@!" ;
UPDATE FONT oFnt COLORS CLR_BLACK, CLR_WHITE ;
VALID VALIDA_BOTAO( mpara_rua, oBusca )
@ 7.00, 13 BUTTON oBusca PROMPT "&Buscar" OF oDlg ;
WHEN( lLigaBotao ) ;
ACTION ( lSaida := .T., nKey := VK_RETURN, oDlg:End() )
oBusca:cToolTip := "Pesquisar a Rua no Google Maps"
@ 7.00, 21 BUTTON oSaida PROMPT "&Saida" OF oDlg ;
ACTION ( lSaida := .T., nKey := VK_ESCAPE, oDlg:End() ) CANCEL
oSaida:cToolTip := "Saida - Exit - Cancelar"
SET FONT OF oBusca TO oFont
SET FONT OF oSaida TO oFont
//read
// daiane voce pode travar o DIALOGO ASSIM, ai, o X nao fechara..
ACTIVATE DIALOG oDlg CENTERED ;
VALID( lSaida )
oFnt:End()
oFont:End()
Set( _SET_INSERT, ! Set( _SET_INSERT ) )
DO CASE
CASE nKey == VK_ESCAPE .OR. GETKEYSTATE( VK_ESCAPE )
lSaida := .F.
lLigaBotao := .F.
RETURN NIL
ENDCASE
// By Billy1943 - Forum PC Toledo. Ideia Original. Agradecimentos.
mpara_uf := alltrim( mpara_uf )
mpara_cid := alltrim( mpara_cid )
mpara_rua := alltrim( mpara_rua )
msearch := mpara_rua + " " + mpara_cid + " " + mpara_uf
DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"
oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
oActivex:Silent := .T. // Para Evitar: Erro de Script na Pagina.
oWnd:oClient = oActiveX // To fill the entire window surface
// funciona assim quebra se clicar na imagem
/*
oActiveX:Navigate( "https://google.com.br/search?q=" + ;
ALLTRIM( msearch ) + "&oq=" + ;
ALLTRIM( msearch ) + "&aqs=chrome" )
*/
// Erro de Script na Pagina?
// https://www.google.com.br/maps/place
// gerando erro de navegador antigo. ?????
//oActiveX:Navigate( "https://www.google.com.br/maps/place/" + msearch )
/*
[13:31:25] Ladinilson Sousa:
acrescente esta linha depois...
*/
oActiveX:Navigate( "https://www.google.com.br/maps/place/" + ALLTRIM(msearch) )
//oActiveX:bOnEvent = { | event, aParams, pParams | cEvents += EventInfo( event, aParams, pParams, oActiveX ) }
ACTIVATE WINDOW oWnd MAXIMIZED /* ; // Nao quero editar nada.
VALID ( MemoEdit( cEvents ), .t. ) */
/*
[13:31:25] Ladinilson Sousa:
acrescente esta linha depois...
*/
/*
AEVAL(DIRECTORY( "cookie:lsoft@google.com" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
AEVAL(DIRECTORY( "cookie:user@google.com" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
*/
RETURN NIL
FUNCTION VALIDA_GET1( cmpara_uf )
IF GETASYNCKEY( VK_UP ) // Para nao perder o foco do dialgo
RETURN( .F. )
ENDIF
IF EMPTY( cmpara_uf )
MsgInfo( OemToAnsi( "OPERA€ÇO INVµLIDA! " )+CRLF+ ;
OemToAnsi( "DIGITIE O NOME DA UF... " )+CRLF+ ;
OemToAnsi( "TECLE <ENTER> PARA CONTINUAR..." ), ;
OemToAnsi( "OPERA€ÇO INVµLIDA! " ) )
lLigaBotao := .F.
RETURN( .F. )
ENDIF
RETURN( .T. )
FUNCTION VALIDA_GET2( cmpara_cid )
IF EMPTY( cmpara_cid )
MsgInfo( OemToAnsi( "OPERA€ÇO INVµLIDA! " )+CRLF+ ;
OemToAnsi( "DIGITIE O NOME DA CIDADE... " )+CRLF+ ;
OemToAnsi( "TECLE <ENTER> PARA CONTINUAR..." ), ;
OemToAnsi( "OPERA€ÇO INVµLIDA! " ) )
lLigaBotao := .F.
RETURN( .F. )
ENDIF
RETURN( .T. )
FUNCTION VALIDA_BOTAO( cmpara_rua, oBusca )
IF EMPTY( cmpara_rua )
MsgInfo( OemToAnsi( "OPERA€ÇO INVµLIDA! " )+CRLF+ ;
OemToAnsi( "DIGITIE O NOME DA RUA... " )+CRLF+ ;
OemToAnsi( "TECLE <ENTER> PARA CONTINUAR..." ), ;
OemToAnsi( "OPERA€ÇO INVµLIDA! " ) )
lLigaBotao := .F.
RETURN( .F. )
ENDIF
// TUDO NORMAL, VAI BUSCAR NO GOOGLE
lLigaBotao := .T.
oBusca:Enable()
oBusca:Refresh()
RETURN( .T. )
FUNCTION EventInfo( event, aParams, pParams, oActiveX )
local cMsg := "Event: " + cValToChar( event ) + CRLF
local n
cMsg += "Params: " + CRLF
for n = 1 to Len( aParams )
cMsg += cValToChar( aParams[ n ] ) + CRLF
next
if event == "BeforeNavigate2"
// MsgInfo( aParams[ 2 ] )
// SetEventParam( pParams, 7, .t. ) // Comment this to allow navigation
endif
RETURN cMsg + CRLF
// END OF PROGRAM