乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 15

[编程交流] dcl编辑框

[复制链接]

6

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:31:23 | 显示全部楼层 |阅读模式
你好
我正在尝试编写我的第一个dcl文件。。。是否有任何方法可以使用ENTER键盘按钮(而不是tab)将光标移动到编辑框上,类似于Visual Basic中的TabIndex?
 
lsp文件启动后,我希望光标定位在第一个编辑框中,在我在那里写入一些值后,我希望使用enter按钮转到下一个编辑框。。。在3个或4个编辑框之后,光标应该定位在OK按钮上,等待我再次按下enter。。。
 
欢迎提出任何建议。
 
谢谢
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 12:36:55 | 显示全部楼层
当程序启动时,使用(mode_tile“your tile here”2)将焦点设置为该互动程序。然后,您必须使用tab键转到下一个互动程序。
回复

使用道具 举报

6

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:42:08 | 显示全部楼层
谢谢你这么做。这是我问题的一部分的解决方案。
 
那么,没有办法使用ENTER按钮?
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 12:44:24 | 显示全部楼层
我不这么认为,
当你按下OK按钮时,你会点击enter来启动程序,所以如果你可以使用enter for选项卡,你怎么能不用鼠标点击按钮就启动程序呢。
 
我从来没有遇到过tab键的问题,不管怎样,我的左手总是在那里。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:48:32 | 显示全部楼层
我非常怀疑你是否能够控制鼠标——这是一种比LISP低得多的编程语言,用于实现这一功能。
回复

使用道具 举报

6

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:52:19 | 显示全部楼层
 
我就是这么想的。至少可以是VB。
谢谢大家。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:57:17 | 显示全部楼层
实际上,您可以使用(仅从键盘)在对话框字段之间进行导航–请尝试以下代码:
另存为test\u dclnavigate。AutoCAD搜索路径上的dcl文件:
  1. TESTDIALOG : dialog {
  2. : edit_box { key = "EditBox1st"; label = "1st Edit Box: "; allow_accept = false; edit_width = 12;}
  3. : edit_box { key = "EditBox2nd"; label = "2nd Edit Box: "; allow_accept = false; edit_width = 12;}
  4. : edit_box { key = "EditBox3rd"; label = "3rd Edit Box: "; allow_accept = false; edit_width = 12;}
  5. ok_only;
  6. }

另存为test\u dclnavigate。lsp文件:
  1. (defun TestDialogNavigate()
  2. (setq CodDialog (load_dialog "test_dclnavigate.dcl"))
  3. (if (not (new_dialog "TESTDIALOG" CodDialog)) (exit))
  4. (mode_tile "EditBox1st" 2)                                  ;set initial focus to first edit box
  5. (action_tile "EditBox1st" "(mode_tile "EditBox2nd" 2)")   ;switch focus from first to second
  6. (action_tile "EditBox2nd" "(mode_tile "EditBox3rd" 2)")   ;switch focus from second to third
  7. (action_tile "EditBox3rd" "(mode_tile "accept" 2)")       ;set final focus from third to OK
  8. (action_tile "accept" "(done_dialog 1)")
  9. (start_dialog)
  10. (unload_dialog CodDialog)
  11. (princ)
  12. )

在代码中,不要忘记为导航中包含的所有字段将allow_accept属性设置为false。
当做
回复

使用道具 举报

6

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 12:59:36 | 显示全部楼层
 
 
那很容易!!!好极了!!!这就是我想要的。真的很好。谢谢。
 
我把在这里找到的所有建议都编成代码,对我来说很好。
它需要更多的化妆。。。
我添加了一个list_框,并在其中列出了层名称,以便用户可以选择工作层。按下ok按钮后,绘制点及其编号(例如),并再次弹出下一个点的对话框。
我将选择的图层名保存到变量中,但有没有办法通过在列表框中自动高亮显示将该图层名设置为下一个条目的默认(当前)图层名?问题是:如何在列表框中突出显示存储在变量中的层名称?
 
再次感谢msasu为代码带来的巨大和平。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:06:57 | 显示全部楼层
谢谢你的评论!我很高兴能帮助你。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 13:11:08 | 显示全部楼层
 
为了突出显示列表框或弹出列表中的条目,您应该首先找到您的默认值是否存储在该列表及其索引中(列表中的位置,第一个条目是索引0)。接下来,加载对话框时,通过以下方式高亮显示它:
 
  1. (set_tile “MyListBox” (itoa ItemIndexInList))

 
注意,set\u tile语句只接受字符串作为参数;提供nil作为第二个参数将引发致命错误!
 
当做
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 06:01 , Processed in 0.517206 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表