Problema con radiobutton
Problema con radiobutton
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
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
- Antonio Linares
- Site Admin
- Posts: 37485
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Problema con radiobutton
Horacio,
Que versión de FWH usas ?
Puedes poner un ejemplo de cómo lo estás haciendo ?
Que versión de FWH usas ?
Puedes poner un ejemplo de cómo lo estás haciendo ?
Re: Problema con radiobutton
Antonio
uso FWH17.01, Harbour 3.2 y BCC7. Modifiqué testrad.prg que viene en samples para reproducir el error.
Muchísimas Gracias
Saludos
uso FWH17.01, Harbour 3.2 y BCC7. Modifiqué testrad.prg que viene en samples para reproducir el error.
Code: Select all
// 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
Re: Problema con radiobutton
Code: Select all
// 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
Re: Problema con radiobutton
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
Saludos
Re: Problema con radiobutton
Code: Select all
// 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
João Santos - São Paulo - Brasil
Re: Problema con radiobutton
Muchísimas gracias Joao por tu tiempo, funciona perfectamente.
Saludos
Saludos
Re: Problema con radiobutton
Bién!!horacio wrote:Muchísimas gracias Joao por tu tiempo, funciona perfectamente.
Saludos
I LOVE FIVEWIN the best.
Fivewin, no me vence nunca. jajajajajajajajajajajajaja.
Saludos.
João Santos - São Paulo - Brasil
- Antonio Linares
- Site Admin
- Posts: 37485
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: