AfraLisp Blog

The AutoLisp/Visual Lisp/VBA Resource Website

AfraLisp Blog

Home Newsletter Utter Rubbish Coding Tips AutoCAD Tips Contact Downloads WAUN

Page I. Home. Page III. Page IV.

Dialogue Boxes - Step by Step - Page II.

We are now going to add a set of radio buttons enclosed in a radio column.
This is to allow the user to select the type of bolt.

Sample 4

The DCL coding : 
samp4 : dialog {				//dialog name
      label = "Structural Holes" ;		//give it a label

       :boxed_radio_column {			//*define radio column
       label = "Type" ;				//*give it a label

        : radio_button {			//*define radion button
     	  key = "rb1" ;				//*give it a name
     	  label = "Bolt Holes &Site" ;		//*give it a label
     	  value = "1" ;				//*switch it on
        }					//*end definition

     	: radio_button {			//*define radio button
     	  key = "rb2" ;				//*give it a name
     	  label = "Bolt Holes Sho&p" ;		//*give it a label
     	}					//*end definition

     	: radio_button {			//*define radio button
     	  key = "rb3" ;				//*give it a name
     	  label = "Bolt Holes &Hidden" ;	//*give it a label
     	  }					//*end definition

     	: radio_button {			//*define radio button
     	  key = "rb4" ;				//*give it a name
     	  label = "Bolt Holes &Ctsnk" ;		//*give it a label
     	}					//*end definition

     	: radio_button {			//*define radio button
     	  key = "rb5" ;				//*give it a name
     	  label = "Bolt Holes &Elevation" ;	//*give it a label
     	  }					//*end definition

     	: radio_button {			//*define radion button
     	  key = "rb6" ;				//*give it a name
     	  label = "Bolt Holes &Slotted" ;	//*give it a label
     	}					//*end definition

        }					//*end radio column

     ok_cancel ;				//predifined OK/Cancel

     : row {					//define row

     : image {					//define image tile
     key = "im" ;				//give it a name
     height = 1.0 ;				//and a height
     width = 1.0 ;				//and now a width
     }						//end image

     : paragraph {				//define paragraph

     : text_part {				//define text
     label = "Designed and Created";		//give it some text
     }						//end text

     : text_part {				//define more text
     label = "by Kenny Ramage";			//some more text
     }						//end text

     }						//end paragraph

     }						//end row
					
     }						//end dialog

And the AutoLISP coding : 
(defun C:samp4 ()					;define function	

  (setq dcl_id (load_dialog "samp4.dcl"))		;load dialog

  (if (not (new_dialog "samp4" dcl_id)			;test for dialog

      );not

    (exit)						;exit if no dialog

  );if

  (setq w (dimx_tile "im")				;get image tile width
        h (dimy_tile "im")				;get image tile height

);setq

  (start_image "im")					;start the image
  (fill_image 0 0 w h 5)				;fill it with blue
  (end_image)						;end image

  (action_tile "rb1" "(setq hole \"site\")")		;*store hole type
  (action_tile "rb2" "(setq hole \"shop\")")		;*store hole type
  (action_tile "rb3" "(setq hole \"hid\")")		;*store hole type
  (action_tile "rb4" "(setq hole \"ctsk\")")		;*store hole type
  (action_tile "rb5" "(setq hole \"elev\")")		;*store hole type
  (action_tile "rb6" "(setq hole \"slot\")")		;*store hole type


    (action_tile
    "cancel"						;if cancel button pressed
    "(done_dialog) (setq userclick nil)"		;close dialog, set flag
    );action_tile

  (action_tile
    "accept"						;if O.K. pressed
    " (done_dialog)(setq userclick T))"			;close dialog, set flag
  );action tile

  (start_dialog)					;start dialog

  (unload_dialog dcl_id)				;unload

(princ)

);defun C:samp

(princ)

Now we'll add a drop down list so that we can select the bolt size.

Sample 5

The DCL coding : 
samp5 : dialog {				//dialog name
      label = "Structural Holes" ;		//give it a label

       : row {					//*define row

       :boxed_radio_column {			//define radio column
       label = "Type" ;				//give it a label

        : radio_button {			//define radion button
     	  key = "rb1" ;				//give it a name
     	  label = "Bolt Holes &Site" ;		//give it a label
     	  value = "1" ;				//switch it on
        }					//end definition

     	: radio_button {			//define radio button
     	  key = "rb2" ;				//give it a name
     	  label = "Bolt Holes Sho&p" ;		//give it a label
     	}					//end definition

     	: radio_button {			//define radio button
     	  key = "rb3" ;				//give it a name
     	  label = "Bolt Holes &Hidden" ;	//give it a label
     	  }					//end definition

     	: radio_button {			//define radio button
     	  key = "rb4" ;				//give it a name
     	  label = "Bolt Holes &Ctsnk" ;		//give it a label
     	}					//end definition

     	: radio_button {			//define radio button
     	  key = "rb5" ;				//give it a name
     	  label = "Bolt Holes &Elevation" ;	//give it a label
     	  }					//end definition

     	: radio_button {			//define radion button
     	  key = "rb6" ;				//give it a name
     	  label = "Bolt Holes &Slotted" ;	//give it a label
     	}					//end definition

        }					//end radio column

        : boxed_column {			//*define boxed column
        label = "&Size";			//*give it a label

     	: popup_list {				//*define popup list
        key = "selections";			//*give it a name
        value = "5" ;				//*initial value
        }					//*end list

       }					//*end boxed column

       }					//*end row

     ok_cancel ;				//predifined OK/Cancel

     : row {					//define row

     : image {					//define image tile
     key = "im" ;				//give it a name
     height = 1.0 ;				//and a height
     width = 1.0 ;				//and now a width
     }						//end image

     : paragraph {				//define paragraph

     : text_part {				//define text
     label = "Designed and Created";		//give it some text
     }						//end text

     : text_part {				//define more text
     label = "by Kenny Ramage";			//some more text
     }						//end text

     }						//end paragraph

     }						//end row
					
     }						//end dialog

Note how we have put the Radio Column and the Drop Down List box into a Row. Looks good hey....Now the AutoLISP coding : 
(defun C:samp5 ()					;define function	

  (setq siz "M20")					;*preset hole size

  (setq NAMES '("M6" "M8" "M10" "M12"
                "M16" "M20" "M24" "M30")		;*define list
  );setq

  (setq dcl_id (load_dialog "samp5.dcl"))		;load dialog

  (if (not (new_dialog "samp5" dcl_id)			;test for dialog

      );not

    (exit)						;exit if no dialog

  );if

  (setq w (dimx_tile "im")				;get image tile width
        h (dimy_tile "im")				;get image tile height

);setq

  (start_image "im")					;start the image
  (fill_image 0 0 w h 5)				;fill it with blue
  (end_image)						;end image

  (start_list "selections")				;*start the list box
  (mapcar 'add_list NAMES)				;*fill the list box
  (end_list)						;*end list

  (action_tile "rb1" "(setq hole \"site\")")		;store hole type
  (action_tile "rb2" "(setq hole \"shop\")")		;store hole type
  (action_tile "rb3" "(setq hole \"hid\")")		;store hole type
  (action_tile "rb4" "(setq hole \"ctsk\")")		;store hole type
  (action_tile "rb5" "(setq hole \"elev\")")		;store hole type
  (action_tile "rb6" "(setq hole \"slot\")")		;store hole type
 

    (action_tile
    "cancel"						;if cancel button pressed
    "(done_dialog) (setq userclick nil)"		;close dialog, set flag
    );action_tile

  (action_tile
    "accept"						;if O.K. pressed
    (strcat						;string 'em together
      "(progn 
       (setq SIZ (atof (get_tile \"selections\")))"	;*get list selection
      " (done_dialog)(setq userclick T))"		;close dialog, set flag
    );strcat
  );action tile

  (start_dialog)					;start dialog

  (unload_dialog dcl_id)				;unload

   (if userclick					;*check O.K. was selected
    (progn

      (setq SIZ (fix SIZ))				;*convert to integer
      (setq SIZ (nth SIZ NAMES))			;*get the size

    );progn

  );if userclick

(princ)

);defun C:samp

(princ)
Page I. Home. Page III. Page IV.
 
The AutoLisp/Visual Lisp/VBA Resource Website

Copyright 1999-Perpetuity by AfraLisp

All rights reserved.
Information in this document is subject to change without notice.
Site created and maintained by Kenny Ramage

The AutoLisp/Visual Lisp/VBA Resource Website