Problema con radiobutton

Problema con radiobutton

Postby horacio » Sat Nov 17, 2018 4:30 pm

Amigos,
tengo el siguiente problema, tengo dos radiobuttons un por la positiva y otra por la negativa. Si elijo la positiva se despliega un dialogo. Si selecciono la opción con el mouse todo se desarrolla como se espera pero si la selección la hago desde el teclado la acción se ejecuta dos veces. He estado buscando por aquí pero no encuentro nada sobre este problema. Alguien tiene alguna idea ? Desde ya muchas gracias.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Problema con radiobutton

Postby horacio » Mon Nov 19, 2018 8:51 pm

+1
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Problema con radiobutton

Postby Antonio Linares » Tue Nov 20, 2018 8:18 am

Horacio,

Que versión de FWH usas ?

Puedes poner un ejemplo de cómo lo estás haciendo ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41403
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problema con radiobutton

Postby horacio » Tue Nov 20, 2018 1:01 pm

Antonio
uso FWH17.01, Harbour 3.2 y BCC7. Modifiqué testrad.prg que viene en samples para reproducir el error.

Code: Select all  Expand view

// Radio Buttons management sample

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush
   local nOption := 2

   SET _3DLOOK ON

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE ( If( nOption == 2, PonUnDialogo(), ) )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil

//----------------------------------------------------------------------------//
Function PonUnDialogo()

    Local cFile := cGetFile( "*.prg", "Seleccione un archivo" )
   
    Return 0
   
   


//----------------------------------------------------------------------------//

procedure AppSys  // XBase++ requirement

return

//----------------------------------------------------------------------------//
 


Muchísimas Gracias

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Problema con radiobutton

Postby karinha » Wed Nov 21, 2018 12:19 pm

Code: Select all  Expand view

// Radio Buttons management sample

#include "FiveWin.ch"

STATIC lAccionRadio := .T.

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush
   local nOption := 2

   SET _3DLOOK ON

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE ( Cambia_Radio( oRadMenu, nOption ) ) WHEN( lAccionRadio )

   //   ON CHANGE ( If( nOption == 2, PonUnDialogo(), ) )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   // id cancel
   REDEFINE BUTTON ID 103 OF oDlg ACTION ( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil

FUNCTION Cambia_Radio( oRadMenu, nOption )

   
   IF nOption = 2

      lAccionRadio := .F.

      PonUnDialogo()

   ELSE

      lAccionRadio := .T.

      nOption = 3

      oRadMenu:Enable()
      oRadMenu:Refresh()

      RETURN( .F. )

   ENDIF

RETURN( .T. )

//----------------------------------------------------------------------------//
Function PonUnDialogo()

   Local cFile

   cFile := cGetFile( "*.prg", "Seleccione un archivo" )
   
Return Nil
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7343
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema con radiobutton

Postby horacio » Wed Nov 21, 2018 1:30 pm

Gracias Joao por tu respuesta, si bien funciona una vez que se ejecuta el diálogo el control radio se deshabilita y eso no me sirve. Evidentemente al volver a hacer foco en el control la acción se vuelve a ejecutar.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Problema con radiobutton

Postby karinha » Wed Nov 21, 2018 2:12 pm

Code: Select all  Expand view

// Radio Buttons management sample

#include "FiveWin.ch"

STATIC lAccionRadio := .T.
STATIC lRetorno     := .T.  // Controla cGetFile Vacio.

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush
   local nOption := 2

   SET _3DLOOK ON

   DEFINE DIALOG oDlg RESOURCE "Radios"

   // Horacio, mira se sirve asi:

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE ( Cambia_Radio( oRadMenu, nOption ) ) // WHEN( lAccionRadio )

   //   ON CHANGE ( If( nOption == 2, PonUnDialogo(), ) )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   // id cancel
   REDEFINE BUTTON ID 103 OF oDlg ACTION ( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil

FUNCTION Cambia_Radio( oRadMenu, nOption )

   IF nOption = 2

      lAccionRadio := .F.

      IF lRetorno

         nOption = 3

         lRetorno := .F.

         PonUnDialogo()

      ENDIF

   ELSE

      lAccionRadio := .T.

      lRetorno := .T.

      nOption = 3

      oRadMenu:Enable()
      oRadMenu:Refresh()

      RETURN( .F. )

   ENDIF

RETURN( .T. )

//----------------------------------------------------------------------------//
Function PonUnDialogo()

   Local cFile

   IF .NOT. lRetorno  // Horacio lRetorno := .T. accciona el cGetfile

      cFile := cGetFile( "*.prg", "Seleccione un archivo" )

      IF EMPTY( cFile )

         lRetorno := .F.

         RETURN( .F. )

      ELSE

         lRetorno := .T.

      ENDIF

   ENDIF
   
Return( .T. ) // Nil
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7343
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema con radiobutton

Postby horacio » Wed Nov 21, 2018 2:41 pm

Muchísimas gracias Joao por tu tiempo, funciona perfectamente.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Problema con radiobutton

Postby karinha » Wed Nov 21, 2018 3:27 pm

horacio wrote:Muchísimas gracias Joao por tu tiempo, funciona perfectamente.

Saludos


Bién!!

I LOVE FIVEWIN the best.

Fivewin, no me vence nunca. jajajajajajajajajajajajaja.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7343
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problema con radiobutton

Postby Antonio Linares » Wed Nov 21, 2018 6:20 pm

Muito obrigado ;-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41403
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 47 guests