lnLeftNew = 5 lnGap = 10 FOR i=1 TO Thisform.optiongroup1.ButtonCount loButton = GETPEM(Thisform.optiongroup1, "Option" + TRANSFORM(i)) IF loButton.Visible loButton.Left = lnLeftNew lnLeftNew = lnLeftNew + loButton.Width + lnGap ENDIF ENDFOR loButton = NULL Thisform.optiongroup1.Width = lnLeftNew>I am trying to loop through option group control and set the option buttons .Left value based on whether the control is visible or not; however, I can't seem to get the values or set the values of the option button. I use an array that has the location value for the .left property. Basically, I'm trying to move the option button to left if the option button is visible. I'm missing something or is there a better way.
>WITH thisform > LOCAL visible_val, loopcnt, arraycnt > visible_val = '' && hold visible value of option button > loopcnt = 1 && loop counter > arraycnt = && array counter > > DIMENSION gaMyArray(1,5) > gaMyArray(1,1) = 5 > gaMyArray(1,2) = 54 > gaMyArray(1,3) = 125 > gaMyArray(1,4) = 237 > gaMyArray(1,5) = 345 > DO WHILE loopcnt <= 5 && have 5 option buttons in optiongroup > > visible_val = thisform.+"Optiongroup1.option"+loopcnt+".visible" > IF visible_val = .t. > arraycnt = arraycnt + 1 > thisform.+"Optiongroup1.option"+loopcnt+".left" = gaMyArray(1,arraycnt) && sets the next .left value > ENDIF > loopcnt = loopcnt + 1 > ENDDO >ENDWITH >>