Probably you'd want to use a more sophisticated layout for your actual form (I used hiCreateFormLayout, but maybe hiCreateGridLayout would be better - see other examples on this forum). Anyway, a very quick thrown-together example. procedure(CCFradioExampleCreateForm() hiCreateLayoutForm( 'CCFradioExampleForm "Radio Example Form" hiCreateFormLayout( 'lay ?items list( hiCreateRadioField( ?name 'radio ?prompt "Choose" ?choices list("1" "2" "3") ?defValue "1" ?callback list("CCFradioCB(hiGetCurrentForm())") ) hiCreateStringField( ?name 'string1 ?prompt "String 1" ) hiCreateStringField( ?name 'string2 ?prompt "String 2" ) hiCreateStringField( ?name 'string3 ?prompt "String 3" ) hiCreateStringField( ?name 'string4 ?prompt "String 4" ) ) ) ?callback 'CCFradioExampleCB ) ) procedure(CCFradioCB(form) let((visiblity) visibility=case(form->radio->value ("1" list(t t t t)) ("2" list(t t t nil)) ("3" list(nil nil nil nil)) ) foreach((field vis) '(string1 string2 string3 string4) visibility get(form field)->invisible=!vis ) ) ) procedure(CCFradioExampleCB(form) printf("Radio: %s\n" form->radio->value) printf("String1: %s\n" form->string1->value) printf("String2: %s\n" form->string2->value) printf("String3: %s\n" form->string3->value) printf("String4: %s\n" form->string4->value) ) procedure(CCFdisplayRadioExample() unless(boundp('CCFradioExampleForm) CCFradioExampleCreateForm() ) hiDisplayForm(CCFradioExampleForm) ) Andrew
↧