Mariordz, ahora recuerdo que yo tuve que hacer lo mismo. Además definí los oSay's como
lWnatClick := .T. para que así, pinchando en el label cambiar el estado del RadioButon como si fuera su propio label. Este es el código que utilicé, por si te sirvede algo.
- Code: Select all Expand view RUN
DEFINE DIALOG oDlg NAME "GENECUOT" OF oWMain ...
...
REDEFINE RADIO oRad ID 321,322,323,324 OF oDlg // CONTROLES NUMERO 22,23,24,25
REDEFINE SAY oSay[1] // CONTROL Nº 26 ( Es decir es el oDlg:aControls[26] )
REDEFINE SAY oSay[2]
REDEFINE SAY oSay[3]
REDEFINE SAY oSay[4]
...
PonRads(oDlg,26) // 26 PORQUE EL PRIMER oSay ES EL CONTROL NUMERO 26
...
ACTIVATE DIALOG oDlg CENTER ...
...
FUNCTION PonRads(oDlg,nCual)
AEVAL( oDlg:aControls, { |o| o:lWantClick := .T. }, nCual, 4 )
oDlg:aControls[nCual+0]:bLClicked := { || ChangeRad(oDlg,nCual-4,nCual-4) }
oDlg:aControls[nCual+1]:bLClicked := { || ChangeRad(oDlg,nCual-4,nCual-3) }
oDlg:aControls[nCual+2]:bLClicked := { || ChangeRad(oDlg,nCual-4,nCual-2) }
oDlg:aControls[nCual+3]:bLClicked := { || ChangeRad(oDlg,nCual-4,nCual-1) }
RETURN NIL
FUNCTION ChangeRad(oDlg,nRad,nCual) // nRad VALDRÁ 22 Y nCual 22, 23, 24 o 25
AEVAL( oDlg:aControls, { |o| o:SetCheck( .F. ) }, nRad, 4 )
oDlg:aControls[nCual]:SetCheck( .T. )
oDlg:aControls[nCual]:oRadMenu:nOption := nCual-nRad+1
RETURN NIL
Con esto, cuando pincho en uno de los SAY, el RadioButon de al lado se pone en .T. y todos los demás en .F. como RadioButon normal.
Espero que te sirva.
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55