乐筑天下

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

最佳的DCL代替方案,轻松实现VBA移植至Vlisp,动态创建、调用VBA窗体通用函数

[复制链接]

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-16 12:46:00 | 显示全部楼层 |阅读模式
Vlisp动态创建、调用VBA窗体通用函数:c:ysx-make-vbaform ,轻松实现VBA移植至Vlisp
回复

使用道具 举报

44

主题

222

帖子

12

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
396
发表于 2018-6-2 10:19:00 | 显示全部楼层
由于CAD的版本更新太夸张。ARX的编译版本太多,所以我一直用VB的DLL来实现。效果很好。不用频繁的更新软件了。
回复

使用道具 举报

Kye

12

主题

83

帖子

10

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
129
发表于 2018-6-2 17:14:00 | 显示全部楼层

前辈,vb是指vb.net还是指vb6调用DLL用于64位CAD?如果vb6可实现,老师能否给个链接学习学习下,谢谢!
回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2022-7-11 12:02:00 | 显示全部楼层

这是个好办法,但对于64位,好像要用到exe,不能用dll
回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-16 12:46:00 | 显示全部楼层

格式:(c:ysx-make-vbaform  VbaList)
VbaList--1(list {窗体(组件)列表} 2{窗体和组件属性列表} 3{预留} 4{自定义函数/事件代码列表} 5{API声明列表+Const常数列表+DIM/Private声明列表}
例子:
(defun c:yf()
  (c:ysx-make-vbaform
    (list (list "Form" "ChinaForm"
                (list "Image" "Image1")
                (list "CommandButton" "CommandButton1")
          );窗体组件列表
          (list (list "ChinaForm" "caption" "悬浮窗体" "width" 510 "height" 409)
                (list "Image1" "left" 0 "top" 0 "width" 506 "height" 383 "AutoSize" 1)
                (list "CommandButton1" "left" 260 "top" 250 "width" 75 "height" 20 "caption" "绘制直线")
          ) ;窗体和组件属性列表
          nil
          (list
                (list "Private Sub CommandButton1_Click()" "ThisDrawing.SendCommand \"line \"" "End Sub")
                (list "Private Sub UserForm_Activate()" "ChinaForm.Left = 0" "ChinaForm.top = 80" "End Sub")
                (list "Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)"
                      "If ChinaForm.Left  0 Then" "ChinaForm.Left = 0" "ChinaForm.Top = 80" "End If" "End Sub"
                )
                (list "Private Sub Image1_Click()" "If ChinaForm.Left =0 Then" "ChinaForm.Left = -507" "ChinaForm.top = 80" "End If" "End Sub")
          )
    )
  )
  (princ)
)
回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-16 12:58:00 | 显示全部楼层

diiyzo4vpbx.gif

diiyzo4vpbx.gif

回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-16 13:05:00 | 显示全部楼层
(defun c:yf()
  (c:ysx-make-vbaform
    (list (list "Form" "ChinaForm"
                (list "Frame" "Frame1"
                      (list "TextBox" "text1")
                      (list "Frame" "Frame2"
                            (list "TextBox" "text3")
                      )
                )
                (list "TextBox" "text2")
          );窗体组件列表
          (list (list "ChinaForm" "caption" "悬浮窗体" "width" 110 "height" 200 "top" 110 "left" 1300)
                (list "Frame1" "left" 4 "top" 4 "width" 98 "caption" "选项")
                (list "text1" "width" 85 "left" 4 "top" 4 "text" "输入内容")
                (list "Frame2" "width" 88 "height" 100 "left" 4 "top" 30 "caption" "中了")
                (list "text3" "left" 4 "top" 5)
                (list "text2" "left" 4 "top" 220)
          ) ;窗体和组件属性列表
          nil
          (list
                (list "Private Sub text3_Change()" "text3.Text = Time$" "End Sub")
                (list "Private Sub UserForm_Activate()" "ChinaForm.Left = 0" "ChinaForm.top = 60" "End Sub")
                (list "Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)"
                      "If ChinaForm.Left  0 Then" "ChinaForm.Left = 0" "ChinaForm.Top = 60" "End If" "End Sub"
                )
                (list "Private Sub UserForm_Click()" "If ChinaForm.Left =0 Then" "ChinaForm.Left = -106" "ChinaForm.top = 60" "End If" "End Sub")
          )
    )
  )
  (princ)
)

tpo4eedxmm5.gif

tpo4eedxmm5.gif


回复

使用道具 举报

71

主题

462

帖子

10

银币

中流砥柱

Rank: 25

铜币
748
发表于 2009-10-16 16:03:00 | 显示全部楼层
把dvb文件用Lisp以二进制文本方式储存
临时写出去转为dvb格式再倒入CAD
就可以实现把图片等信息都弄进Lisp里面!
回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-16 16:32:00 | 显示全部楼层
nonsmall发表于2009-10-16 16:03:00

vbgaglbnum1.gif

vbgaglbnum1.gif

回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2009-10-19 10:00:00 | 显示全部楼层
即时动态获取输入数据


wlgur2hfjvy.gif

wlgur2hfjvy.gif

回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 05:57 , Processed in 0.427810 second(s), 75 queries .

© 2020-2025 乐筑天下

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