Clipper On Line • Ver Tópico - Como definir o botão fechar?

Como definir o botão fechar?

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Como definir o botão fechar?

Mensagempor Daiane » 05 Nov 2015 11:27

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.
Anexos
Clipper On Line • Criar um novo tópico - Google Chrome.png
Clipper On Line • Criar um novo tópico - Google Chrome.png (5.06 KiB) Visualizado 1380 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."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como definir o botão fechar?

Mensagempor Kapiaba » 05 Nov 2015 14:00

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:

#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

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como definir o botão fechar?

Mensagempor Kapiaba » 05 Nov 2015 14:07

Discussão no forum inter:

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


Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como definir o botão fechar?

Mensagempor Kapiaba » 05 Nov 2015 14:14

Veja também:

C:\FWH\manual
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como definir o botão fechar?

Mensagempor Daiane » 05 Nov 2015 14:19

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
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como definir o botão fechar?

Mensagempor Kapiaba » 05 Nov 2015 14:56

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):

Imagem

Espero que ajude, senão terás que esperar alguém que manje de PELLESC.EXE. Sorry.

abs
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Como definir o botão fechar?

Mensagempor Daiane » 05 Nov 2015 14:59

não queria ter q desabilitar o X
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."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como definir o botão fechar?

Mensagempor Kapiaba » 05 Nov 2015 15:06

Veja a variavel STATIC lSaida

// Ideia original:
// http://www.pctoledo.com.br/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


Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 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