考虑以下代码:
DCL:
- ccl : [color=BLUE]dialog[/color]
- {
- [color=BLUE]label[/color] = [color=MAROON]"Test"[/color];
- [color=BLUE]spacer[/color];
- : [color=BLUE]popup_list[/color]
- {
- [color=BLUE]key[/color] = [color=MAROON]"lst"[/color];
- [color=BLUE]width[/color] = 7;
- [color=BLUE]fixed_width[/color] = [color=BLUE]true[/color];
- [color=BLUE]label[/color] = [color=MAROON]"CHOOSE NUMBER:"[/color];
- }
- [color=BLUE]spacer[/color]; [color=BLUE]ok_cancel[/color];
- }
LISP:
- ([color=BLUE]defun[/color] c:test ( [color=BLUE]/[/color] id lst )
- ([color=BLUE]setq[/color] lst '([color=MAROON]"1"[/color] [color=MAROON]"2"[/color] [color=MAROON]"3"[/color] [color=MAROON]"4"[/color] [color=MAROON]"5"[/color] [color=MAROON]"6"[/color] [color=MAROON]"7"[/color] [color=MAROON]"8"[/color]))
- ([color=BLUE]if[/color]
- ([color=BLUE]and[/color]
- ([color=BLUE]<[/color] 0 ([color=BLUE]setq[/color] id ([color=BLUE]load_dialog[/color] [color=MAROON]"test.dcl"[/color])))
- ([color=BLUE]new_dialog[/color] [color=MAROON]"ccl"[/color] id)
- )
- ([color=BLUE]progn[/color]
- ([color=BLUE]start_list[/color] [color=MAROON]"lst"[/color])
- ([color=BLUE]foreach[/color] itm lst ([color=BLUE]add_list[/color] itm))
- ([color=BLUE]end_list[/color])
- ([color=BLUE]set_tile[/color] [color=MAROON]"lst"[/color] ([color=BLUE]cond[/color] (*num*) (([color=BLUE]setq[/color] *num* [color=MAROON]"0"[/color]))))
- ([color=BLUE]action_tile[/color] [color=MAROON]"lst"[/color] [color=MAROON]"(setq *num* $value)"[/color])
- ([color=BLUE]if[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]start_dialog[/color]))
- ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nYou chose number: "[/color] ([color=BLUE]nth[/color] ([color=BLUE]atoi[/color] *num*) lst)))
- )
- )
- ([color=BLUE]princ[/color] [color=MAROON]"\nUnable to load dialog."[/color])
- )
- ([color=BLUE]if[/color] ([color=BLUE]<[/color] 0 id) ([color=BLUE]unload_dialog[/color] id))
- ([color=BLUE]princ[/color])
- )
|