找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1103|回复: 0

[教学]:如何在DCL对话框中显示幻灯片

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-2-1 03:49:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
下面的代码演示了在DCL对话框中显示4种点模式,并且按照选择的幻灯片来设置当前的PDMODE系统变量。

在运行这个程序之前,要在当前图形中画些点作为测试。


  1. (defun C:SetPDMode (/ dcl_handle pickedtile)

  2.   (setq img_dcl (findfile "SetPDMode.dcl"))
  3.   (if (null img_dcl )
  4.      (progn
  5.         (princ "\nExiting, DCL File: SetPDMode.DCL was NOT found !")
  6.         (exit)
  7.      )
  8.   )

  9.   (setq rga (getvar "REGENMODE"))
  10.   (setvar "REGENMODE" 0)

  11.   (if img_dcl
  12.     (progn
  13.       (setq ai_pts_lst '("2" "3" "4" "32") )

  14.       (setq dcl_handle (load_dialog img_dcl))

  15.       (if lastpt
  16.           (if (not (new_dialog "imagebut" dcl_handle "3" lastpt)) (exit) )
  17.           (if (not (new_dialog "imagebut" dcl_handle "3" '(-1 -1))) (exit) )
  18.       )
  19. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  20.       (setq pt0 "3")
  21.       (foreach pt0 ai_pts_lst
  22.           (setq pt1 (strcat "pdmode" pt0))
  23.           (setq pt2 (getvar "PDMODE"))

  24.           (setq sx (dimx_tile pt1))
  25.           (setq sy (dimy_tile pt1))

  26.           (start_image pt1)
  27.           (slide_image
  28.                0 0
  29.                (- sx 1) (- sy 1)
  30.                 pt1
  31.           )
  32.           (end_image)
  33.       );; foreach

  34. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  35.       (action_tile "pdmode2" "(progn (setq pickedtile $key) (alert (strcat
  36. "\nSelected Slide is: " pickedtile)))")
  37.       (action_tile "pdmode3" "(progn (setq pickedtile $key) (alert (strcat
  38. "\nSelected Slide is: " pickedtile)))")
  39.       (action_tile "pdmode4" "(progn (setq pickedtile $key) (alert (strcat
  40. "\nSelected Slide is: " pickedtile)))")
  41.       (action_tile "pdmode32" "(progn (setq pickedtile $key) (alert (strcat
  42. "\nSelected Slide is: " pickedtile)))")
  43.       
  44.       (action_tile "cancel" "(done_dialog) (setq gperr "")(exit)")

  45.       (action_tile "accept" "(setq lastpt (done_dialog)))")
  46.       (action_tile "help" "(progn (setq pickedtile -1) (done_dialog 3))" )
  47.       
  48.       (setq SelectedSlide 0 pickedtile nil)
  49.       (start_dialog)
  50.       (unload_dialog dcl_handle)

  51.       (if pickedtile
  52.           (progn
  53.             (princ "\nThe Selected Tile was ")
  54.             (princ pickedtile)
  55.             (princ "\n")
  56.             (cond
  57.               ((equal pickedtile "pdmode2")
  58.                (setvar "PDMODE" 2)
  59.               )
  60.               ((equal pickedtile "pdmode3")
  61.                (setvar "PDMODE" 3)
  62.               )
  63.               ((equal pickedtile "pdmode4")
  64.                (setvar "PDMODE" 4)
  65.               )
  66.               ((equal pickedtile "pdmode32")
  67.                (setvar "PDMODE" 32)
  68.               )
  69.             )
  70.           )
  71.       )

  72.       (if (= pickedtile -1)
  73.             (alert "Help Selected.")
  74.       )
  75.       
  76.       (if lastpt
  77.          (progn (princ "\nDialogue Box Location: is ") (princ (car lastpt))
  78. (princ ", ") (princ (cadr lastpt)) )
  79.       )

  80. ));;; IF DCL File
  81. (setvar "REGENMODE" rga)

  82. (princ)
  83. )
  84. (princ "\nSetPDMode Loaded, type (C:SetPDMode) or SetPDMode to run.")
  85. (princ)


  86. //
  87. // 显示幻灯片的DCL文件.
  88. //
  89. imagebut: dialog {
  90. label        = "Set PDMode";
  91. : column {
  92.    : row {
  93.           spacer_1;
  94.           }
  95.    : row {
  96.      : image_button {
  97.         key             = "pdmode2";
  98.         width             = 7;
  99.         height             = 3;
  100.         aspect_ratio = 1.0;
  101.         color             = 0;
  102.         allow_accept = true;
  103.         value             = 2;
  104.      }
  105.      : image_button {
  106.         key             = "pdmode3";
  107.         width             = 7;
  108.         height             = 3;
  109.         aspect_ratio = 1.0;
  110.         color             = 0;
  111.         allow_accept = true;
  112.         value             = 3;
  113.      }
  114.      : image_button {
  115.         key             = "pdmode4";
  116.         width             = 7;
  117.         height             = 3;
  118.         aspect_ratio = 1.0;
  119.         color             = 0;
  120.         allow_accept = true;
  121.         value             = 4;
  122.      }
  123.      : image_button {
  124.         key             = "pdmode32";
  125.         width             = 7;
  126.         height             = 3;
  127.         aspect_ratio = 1.0;
  128.         color             = 0;
  129.         allow_accept = true;
  130.         value             = 32;
  131.     }
  132.      }
  133.    : row {
  134.           spacer_1;
  135.           }
  136.    : row {
  137. ok_cancel;
  138.           }
  139.    
  140.    }
  141. }

本帖被以下淘专辑推荐:

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-24 02:54 , Processed in 0.235241 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表