标题:关于把表单输出到PRG的实现探讨
只看楼主
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
结帖率:100%
 问题点数:0 回复次数:39 
关于把表单输出到PRG的实现探讨
说明
【缘起】

多数人(包括我自己)在写程序界面的时候,喜欢用表单设计器,毕竟它所见即所得,需要什么控件,直接拖上去就OK,简单快捷,让我们有更多的时间,专注业务本身的逻辑。毕竟,所见即所得,这是目前主流的界面设计方式。

但是,有时,我们会遇到这种需求:把一个已经写好的Form,用PRG的形式,重新实现一遍,比如有时为了申请专利,需要源代码,如果把表单用PRG形式提交的话,就是“原汁原味”的源代码,简单方便;或者,有时为了加密的需要,不利用Form,直接用PRG表达的FORM,更有利于代码加密。

Form_To_Prg,就是在这个背景下开发的。

以下举例说明。
比如我们有这样一个表单:(图1)

表单的各部分已经写好,测试OK。
现在我们需要把这个表单,转换为PRG,于是,运行本程序,出现如下界面:


步骤:1、填写要分析的SCX文件全路径到上方编辑框中(截图略);

然后,2、点击【解析表单】;
点击后,程序开始分析这个SCX文件,并将分析结果显示于编辑框中。如图:
 

步骤3、点击【另存到PRG】(截图略)
这样,就把一个表单文件,转换为PRG了,我们打开这个新生成的PRG,如图:


可以看到,PRG已经生成,尝试运行一下试试?

 
可以看到,界面还原,与图1 一模一样,“克隆”成功。
这样,我们就实现了Form 到PRG的转换.

现在,把这个小程序放上来,欢迎大家都来用用,多多测试(因为刚刚写好,未严格测试,只测试了几个SCX文件)。
 
代码开放,水平有限,写得很菜,权当是抛砖引玉,如果哪一段你看了不爽,你随意修改,我的本意,就是希望这个成为一个公用的工具,所以欢迎各位贡献你的巧思和智慧。
main解析表单.zip (137.51 KB)


[此贴子已经被作者于2021-8-9 15:36编辑过]

搜索更多相关主题的帖子: 界面 PRG 表单 测试 文件 
2021-08-09 15:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
ole控件没解释出来?
2021-08-09 16:12
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
不能使用自定义类

dBase有人接盘了。
2021-08-09 18:29
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
学习啦,谢谢!
2021-08-09 18:56
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
下载,正在学习中。。。,有味道!
正如三楼朋友讲的,存在着自定义类不能解析的缺点。
添加了一个[寻找表单]按钮,操作更方便。
main解析表单1.rar (2.19 KB)



[此贴子已经被作者于2021-8-10 09:52编辑过]

2021-08-10 07:46
gxouyuan
Rank: 2
等 级:论坛游民
帖 子:12
专家分:27
注 册:2021-3-17
得分:0 
好东西,学习了,感谢。
2021-08-10 08:18
sych
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:179
专家分:183
注 册:2019-10-11
得分:0 
加油,完善下去
2021-08-10 10:14
jiazhefish
Rank: 2
等 级:论坛游民
帖 子:64
专家分:28
注 册:2011-9-6
得分:0 
都是神人啊
2021-08-10 10:25
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
更新了,
加入分析自定义类和OLE控件的动作
加入一个按钮,打开寻找文件对话框.
感谢测试和提出改进意见.
main解析表单.zip (2.82 KB)
2021-08-10 12:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
DO FORM &cFromName name ffrm1 NOSHOW
载入表单时会先触发BeforeOpenTables、Load事件,如果在事件中涉及一些表单之外的东西,有可能会出弹出异常提示窗口。
加个异常直接返回就干净点
ON ERROR return
DO FORM &cFromName name ffrm1 NOSHOW
ON ERROR
2021-08-10 15:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506460-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.164673 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved