明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11430|回复: 45

[原创] 利用VB做可视化DCL思路简析

  [复制链接]
发表于 2009-6-9 10:53:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-6-22 11:20:53 编辑

首先大家可以自己到网上找一个绿色的VB6 才几MB而已

打开VB6默认新建EXE就行 打开即可

这时就有一个窗体(对话框)了

左面是窗体的控件区 拖到界面上就行

(操作很简单 如果你还没有用过VB 目前VB教程书店和网上大把可以自己看看)

右面是修改属性的 对DCL来讲主要是一个"名称"(LISP里面的key) 一个caption (LISP里面的Label)

高度(Height) 宽度(width) X坐标 (left) Y坐标 (Top) 这几个自己可以拖动

我们先放置一个commandbutton (就是Button) 然后在右上方工程窗口右键点击Form1 (Form1)

保存Form1.frm

之后用记事本打开这个Form1.frm代码如下

VERSION 5.00
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton Command1
      Caption         =   "Command1"
      Height          =   615
      Left            =   1560
      TabIndex        =   0
      Top             =   1320
      Width           =   1815

   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

这样我们可以用Lisp对这个代码进行分析 每个Begin-End之间就是一个控件

另外VB6控件的高宽对应DCL有个比值

注意DCL中需要 Row 和 Column 这里要做循环嵌套和递归判定

只要排序得当 一个Visual DCL就能够诞生了.(这样工作量大大减少 几天就可做个样子出来)

我做的VISUAL DCL效果可以到这里查看:http://nonsmall.ys168.com/

前一个图是VB做窗体 后一个图是自动生成的DCL

部分源码(源码也是源码生成的....汗):

完整生成的自动化源码:

 自动组合DCL LSP

拆分的:

本帖子中包含更多资源

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

x

评分

参与人数 1威望 +1 明经币 +1 收起 理由
mccad + 1 + 1 【好评】好思路

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2017-11-6 14:06:34 | 显示全部楼层
利用VB做对话框确实是一个很不错的建议,谢谢分享啊。
发表于 2017-11-3 09:02:57 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢

评分

参与人数 1明经币 -3 收起 理由
xyp1964 -3 重复发帖

查看全部评分

 楼主| 发表于 2009-6-9 12:27:00 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-6-9 12:52:00 | 显示全部楼层

上面的图是VB 下面的图是自动生成的DCL效果

DCL对应代码:

本帖子中包含更多资源

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

x
发表于 2009-6-9 13:12:00 | 显示全部楼层

这样做不是太复杂了?

VB画窗体->转换为DCL->再写Lisp代码?

最后一步发现窗体有问题又重做?

而且动用三种程序(VB/Vlisp/nonsmall)

 楼主| 发表于 2009-6-9 14:32:00 | 显示全部楼层
lzh741206发表于2009-6-9 13:12:00这样做不是太复杂了?VB画窗体->转换为DCL->再写Lisp代码?最后一步发现窗体有问题又重做?而且动用三种程序(VB/Vlisp/nonsmall)

VB画窗体 : 很简单

转换为DCL : 程序全自动(这个转换程序就是用纯Lisp写一段 调用DCL前执行一下就行)

写Lisp代码 : 平时正常写

有问题 : 调整VB里面的窗体 , DCL对应即时改变 , 为什么要重做?

动用程序 : VB(只是拖一拖出来个对话框样子) vlisp (本来就是为了写Lisp么)

发表于 2009-6-9 15:48:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-6-9 15:52:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-6-9 16:01:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-6-9 17:17:00 | 显示全部楼层
liminnet发表于2009-6-9 16:01:00NONS 做成VB后,你的转成DCL的程序在那呀,

看你这么积极主动很有兴趣的样子

你也尝试写这样一个转换程序吧

先从一个控件 两个控件写一写 能学到很多知识!

发表于 2009-6-9 17:27:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:49 , Processed in 0.271317 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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