Activar/Desactivar control radio

Activar/Desactivar control radio

Postby JoseAlvarez » Sun Feb 04, 2024 5:34 pm

Saludos a todos, esperando se encuentren muy bien.

Tengo un control RADIO de tres opciones, de las cuales necesito activar/desactivar dos de ellas
segun una condicion. Me explico: tengo el siguiente dialogo:

Image

En la parte inferior, estan las 3 opciones del control radio.
Las dos primeras deben activarse cuando el segundo browse (color verde) tenga alguna fila de datos y desactivarse la tercera.
Cuando el segundo browse no tenga datos, deben desativarse las dos primeras y solo estar activa la tercera opcion. es decir:

Segundo browse con datos = opciones 1 y 2 ENABLE() , tercera opcion DISABLE()
Segundo browse sin datos = opciones 1 y 2 DISABLE() , tercera opcion ENABLE()

Agradezco desde ya, la ayuda...
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: Activar/Desactivar control radio

Postby FranciscoA » Mon Feb 05, 2024 12:11 am

José, mira si te es util.
Code: Select all  Expand view
//---------------------------------------//
// RADIO DESHABILITADO SEGUN CONDICION
//---------------------------------------//
Function RadioEnabDisab()
   local oDlg, oBrw1, oBrw2, oRadio, nRadio := 1
   local aData := {}

   USE STATES NEW

   DEFINE DIALOG oDlg FROM 0,0 TO 500, 640 PIXEL TRUEPIXEL ;
      TITLE "RADIO ENABLE/DISABLE SEGUN DATOS EN oBrw2"

   //Browse Fuente
   @ 20, 20 XBROWSE oBrw1 SIZE 300,-120 PIXEL OF oDlg ;
      DATASOURCE "STATES" ;
      COLUMNS "Code","Name" ;
      COLSIZES 60,180 ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw1
      :bLDblClick  := { || aadd(aData, {oBrw1:Code:Value,oBrw1:Name:Value}), oBrw2:Refresh(), RadEnabDisab(oRadio,oBrw2) }
      :CreateFromCode()
   END

   //Browse Destino
   @ 20,320 XBROWSE oBrw2 SIZE 300,-120 PIXEL OF oDlg ;
      DATASOURCE aData ;
      COLUMNS 1,2 ;
      HEADERS "CODIGO", "NOMBRE" ;
      COLSIZES 60,180 ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw2
      :bKeyDown    := { |nKey| if(nKey == VK_DELETE, (ASize(aData,0), oBrw2:Refresh(), RadEnabDisab(oRadio,oBrw2)),) }
      :CreateFromCode()
   END

   @.1,1 Say "Doble Click en Browse 1 para agregar a Browse 2, o tecla Delete en Browse 2 para limpiarlo" of oDlg
   @ oDlg:nHeight-90,240 RADIO oRadio VAR nRadio OF oDlg ;
            ITEMS "Opcion 1","Opcion 2","Opcion 3";
            _3D SIZE 150, 25  PIXEL

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT ( oBrw1:SetSize((oDlg:nWidth/2)-30, oDlg:nHeight-20) ,;
                oBrw2:SetSize(oBrw1:nWidth, oBrw1:nHeight) ,;
                oBrw1:Move(oDlg:nTop+20,oDlg:nLeft+20) ,;
                oBrw2:Move(oDlg:nTop+20,oBrw1:nWidth+40) ,;
                RadEnabDisab(oRadio,oBrw2) )
       
   STATES->(DBCLOSEAREA())
return nil

//-------------------------------------------//
Function RadEnabDisab(oRadio,oBrw2)
   if oBrw2:nLen == 0
      oRadio:aItems[1]:Disable()
      oRadio:aItems[2]:Disable()
      oRadio:aItems[3]:Enable()   ;   oRadio:aItems[3]:SetFocus()
   else
      oRadio:aItems[1]:Enable()   ;   oRadio:aItems[1]:SetFocus()
      oRadio:aItems[2]:Enable()
      oRadio:aItems[3]:Disable()
   endif
Return nil
 

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Activar/Desactivar control radio

Postby JoseAlvarez » Mon Feb 05, 2024 12:50 pm

Francisco,

Muchísimas gracias!

Funcionando perfecto!

Saludos!
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: Activar/Desactivar control radio

Postby karinha » Mon Feb 05, 2024 1:43 pm

Gracias FranciscoA, Very good!

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

Re: Activar/Desactivar control radio

Postby FranciscoA » Mon Feb 05, 2024 3:07 pm

José, Karinha:

Encantado de colaborar.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 105 guests