Lee Mac 发表于 2022-7-6 15:08:39

我的第一个对话框~评论

大家好,
 
所以,我想我终于可以进入DCL的世界了。。。虽然很可怕
 
请在下面找到我第一次尝试DCL的地方——只使用了我为递增整数文本而编写的旧代码
 
我们非常感谢您的评论和批评,欢迎您提出任何建议。
 
干杯
 

 


(defun c:sums(/ ss dcTag fSel)
(vl-load-com)

(defun selAdd   ()
   (setq fSel '(1+))
   (set_tile "sel_text" "Plus One Selected"))

(defun selSub   ()
   (setq fSel '(1-))
   (set_tile "sel_text" "Minus One Selected"))

(setq dcTag (load_dialog "AddOne.dcl"))
(if (not (new_dialog "adder" dcTag)) (exit))
(action_tile "sel_add" "(selAdd)")
(action_tile "sel_sub" "(selSub)")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog dcTag)

(if (setq ss (ssget (list (cons 0 "TEXT,MTEXT")
   (if    (getvar "CTAB") (cons 410 (getvar "CTAB"))
      (cons 67 (- 1 (getvar "TILEMODE")))))))
   (progn
   (mapcar '(lambda (x) (entmod (subst (cons 1 (itoa (eval (append fSel (list (atoi (cdr (assoc 1 x)))))))) (assoc 1 x) x)))
         (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))))
   (princ "\n<!> No Selection Set <!>"))

(princ))


谢谢你抽出时间

The Buzzard 发表于 2022-7-6 15:15:08

李不错,
 
但并非如此重要,我注意到dcl和lisp有两个不同的名称。我倾向于认为很难知道这两个文件是否属于彼此。
我以前见过这样做,但我更喜欢用相同的名称保存文件。
 
干得好,希望看到更多。
我可以想象你会走多远。
秃鹰

Lee Mac 发表于 2022-7-6 15:20:22

啊,好极了,秃鹰~原来的Lisp程序叫做“addone”,然后出于某种原因我把它改成了“sums”。。。,但是我可以理解你关于同名DCL的观点——它可能也会减少出错的机会
 
我必须说,从DCL语言开始比我预期的要容易得多-一切似乎都是不言而喻的,在函数方面似乎没有太多需要学习的地方-但我还没有深入到它。。。
 
前几天我运行了你的DCL(CDL),看看一个合适的DCL会是什么样子,我必须说,它看起来确实非常专业(这是我决定亲自深入学习DCL的一半原因)。它有很多应用程序-我有一些Lisp,其中用户可以从选项菜单中进行选择,如果转换为对话框格式,这些应用程序将变得更加专业。
 
再次感谢您的评论,Buzzard-我将看看DCL的兔子洞有多远…:P
 
 
干杯
 

The Buzzard 发表于 2022-7-6 15:25:27

dcl文件的一个优点是,可以使用预设数据控制用户输入。这可以避免用户在通常情况下在命令提示下键入的输入中出错。在图形编辑器区域中,它也位于您的脸上。当用户做出错误选择时,您可以使用警报向用户显示。
 
我认为他们值得付出努力。

The Buzzard 发表于 2022-7-6 15:28:04

附件是一个我知道你会喜欢的节目。它创建了一个带有图像平铺的简单对话框。在运行程序之前,在屏幕上绘制一些东西。运行该程序,它将创建一个带有对话框的程序,并在刚刚绘制的对象的平铺中创建一个图像。
它将生成的程序放在驱动器C的临时目录中:。
生成的程序将被称为vimage。带有dcl文件调用vimage的lsp。dcl。它创建的幻灯片是一个windows元文件。图像列表在程序中。这是一种为库创建图像的好方法,无需外部幻灯片。这个程序是由Viper从另一个我曾经属于的论坛写的。
 
 
一个漂亮整洁的包裹。
享受
Mimage2.lsp

The Buzzard 发表于 2022-7-6 15:33:18

这里还有一个程序,我想你们可能还记得这个。我正在寻找一些帮助,并得到了它。该程序从程序mimage2开始创建。lsp并以此为基础。我只是用上面的程序创建了SL程序中的所有几个简单图像。当你看这个节目时,你会注意到我不需要使用外部幻灯片。我使用一个image_互动程序,在滚动弹出列表时更改图像。从目前为止我从你们那里学到的,我将能够改进这个程序以及使用cons和assoc。它将大大巩固我的编程。我希望你能像我一样充分利用它。这真的节省了时间。
 
再次享受,我迫不及待地想看看你接下来会讲什么。
 
秃鹰
SL.zip

Lee Mac 发表于 2022-7-6 15:36:29

感谢您的友好贡献Buzzard-它们提供了非常丰富的信息
 
我喜欢SL程序,在某个时候在论坛上帮助你时记得它的名字(很高兴看到它都能工作!)。我喜欢在用户将块插入图形之前将图像用作预览图块非常专业。
 
谢谢
 

JohnM 发表于 2022-7-6 15:42:29

当你开始使用对话框时,整个新世界就会打开,你将开始编写更复杂的程序。学习DCL很好,但它确实有一些缺点,这取决于程序的复杂性。如果你想制作越来越多的对话框,我建议你研究一下openDCL。它是免费的,比常规DCL更灵活。您可以将控件拖放到窗体上,并将其放置在任何位置。此外,您还有更多的对话框类型可供选择,DCL只有一种类型。如果你想学习对话框,不妨学习更多选项

Lee Mac 发表于 2022-7-6 15:46:22

谢谢你的建议,约翰,我将研究OpenDCL-它是一个单独的程序吗?它是免费的吗?

The Buzzard 发表于 2022-7-6 15:51:27

李,
 
是的,它是免费的,这是下载链接。
 
http://www.opendcl.org/
 
 
享受
秃鹰
页: [1] 2
查看完整版本: 我的第一个对话框~评论