Page 1 of 1

Cambiar los prompts de un menu de radio botones

Posted: Tue Mar 16, 2010 11:03 pm
by mariordz
Hola amigos del foro, nuevamente solicitando de su ayuda, tengo un recurso creado con resource builder donde tengo un grupo de radio botones, obviamente cada radio botón tiene su etiqueta, deseo usar el mismo dialogo para un proceso diferente, pero las etiquetas de los radio botones no son las mismas, entonces la pregunta es: ¿Como le cambio las etiquetas a un grupo de radio botones en un díalogo?

Intente así:
oRadio:aItems[1]:="Nueva etiqueta1"
oRadio:aItems[2]:="Nueva etiqueta2"
.....

Y así:
oRadio:aprompts[1]:="Nueva etiqueta1"
oRadio:aprompts[2]:="Nueva etiqueta2"

Pero sin exito, Alguien sabe como se hace?

Muchas gracias

Re: Cambiar los prompts de un menu de radio botones

Posted: Wed Mar 17, 2010 2:18 am
by joseluisysturiz
prueba asi

oRadio:SetText := "nuevo texto"
oRadio:refresh()

sino me equivoco los radios son individuales, solo que los agrupas, algun otro colega aclarara ese detalle ya que no veo en la clase ningun array de radio...

saludos... :shock:

Re: Cambiar los prompts de un menu de radio botones

Posted: Wed Mar 17, 2010 3:32 pm
by mariordz
Jose Luis, gracias por tu respuesta, desafortunadamente no funcionó, pero se me ocurrio una manera de hacerlo, en mi archivo de recursos generé los botones sin etiqueta, y junto a ellos puse objetos "label" con la descripción de la acción que genera cada botón, luego desde mi código solo hice un "Redefine say oSay1 prompt"Nueva etiqueta" Id 100 of oDialogo" para cada una de las etiquetas puesta cerca de los botones, ahora tengo que definir esta etiquetas cada vez qyue quiera usar este recurso.

Gracias de todas formas por la buena intención

Re: Cambiar los prompts de un menu de radio botones

Posted: Wed Mar 17, 2010 6:38 pm
by joseluisysturiz
Es asi man, ya lo probe y todo....

oRadio:aItems[1] := "Nuevo nombre"

saludos... :shock:

Re: Cambiar los prompts de un menu de radio botones

Posted: Thu Mar 18, 2010 7:29 am
by antolin
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

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.

Re: Cambiar los prompts de un menu de radio botones

Posted: Thu May 31, 2012 8:13 pm
by omarelunico
Tienes que colocar al final
Define Dialog odlg ResName "PELLESC1" title "ESCOGER titulo"
Redefine RADIO oradio VAR nradio ID 150,151 of odlg
Activate Dialog odlg on init (oradio:aItems[1]:settext("prompt1"),oradio:aItems[2]:settext("prompt2"))

A ver si te ayuda en algo.

Saludos