| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2234 人关注过本帖, 1 人收藏
标题:乱世中的类,是用 vcx 与 prg ?
取消只看楼主 加入收藏
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
结帖率:85.71%
收藏(1)
已结贴  问题点数:20 回复次数:8 
乱世中的类,是用 vcx 与 prg ?
首先声明一点,我无意评价是用 vcx 好还是用 prg 好,我只是描述它们之间的差别,不考虑如何抉择。

vcx 由来以及,自我开始使用 vfp3 时它就存在了,当时用得不多因为 vfp3 没有容器。大范围使用 vcx 则是 vfp6,vfp6 有了容器并且有了更多的类。prg 则应该更加久远,直至 vfp9 有很多不可视类仍然需要用 prg 来完成,这里也不考虑不可视类这种无它的方式。

我以前曾经见过一些前辈,用大量大量的 prg 来定义类,甚至先用 vcx 设计类然后再转成 prg。我一直不明白为什么费尽心机维护两个版本,偶尔小更新图方便直接改 prg 忘了改 vcx,大更新又去调整 vcx 再转成 prg。我也曾经咨询过也跟同行讨论们这个问题,但从来没有人说得出一个令我信服的理由,这些理由比起维护两个版本来说以及 vcx 带来的便利来说根本不值一提,如果 prg 真的这么好,又何必设计时用 vcx 再特意转成 prg 呢。

后来我明白了,那是 Win2000 问世以后,vfp6 还是 vfp5 的程序在 Win2000 上频繁出现 C5 闪退,有大神分析了一通 vfp 原理,总结说是 Unicode 问题,解决方法12345其中有一个就是把 vcx 转成 prg。我信吗?我只是严格自律所有变量一律 Local 声明,我出现 C5 的情况通常都是在使用第三方的情况下出现(含 Win32api),这种情况下只能是认真看第三方说明了根本没有任何办法解决。

现在己经是 3202 年了,vfp6 也早就退出历史舞台了,可这种把 vcx 转成 prg 习惯却被很多人保留了下来,甚至把“为什么”视为绝密的存在。

prg 连个语法检查都没有,用它来写一个稍微复杂一点的类都痛苦得要死。vcx 可以多窗口可以打开多个方法,Ctrl+E 保存后下次打开 IDE 仍然停留在你上次编辑时的状态。prg 唯一的优点就是写个小型的示例 ,在各种论坛上直接发代码不用上传文件。

举个小例子,下图就是 vcx 与 prg 的差别,vcx 有属性、方法说明 prg 没有,prg 是由 vcx 直接生成的一字未动,我甚至尝试在 prg 中加 helpString "方法说明" 都毫无作用,但方法提示对我这位也己被岁月摧残成“前辈”的老人来说却是相当管用的。

就说到这吧,似乎没说什么,或者 vfp 并不完美,vcx 也不完美,prg 也不完美。

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-3-26 10:12编辑过]

搜索更多相关主题的帖子: prg 出现 方法 转成 vfp6 
2023-03-26 10:10
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
以下是引用cssnet在2023-3-26 11:34:56的发言:

vcx方便【用】,prg方便【查】。
实际编写软件代码时,我习惯用“类管理器”打开vcx,来作编辑修改;而程序初稿完工后,进入debug阶段,我习惯导出prg,传到平板内,没事就拿在手上,一遍又一遍地通读,以便找出问题所在。
两者互不矛盾。
嗯……还有一点:
申请软件著作权时,若不放心源码过多地对外暴露,哪怕对方是正规管理机关也不太放心,不妨将一堆无关紧要的scx导出为prg,打印到A4纸上凑数。事关,软著对于源代码有打印页数的要求:前、后各连续30页,共60页。将表单转换为prg,又长又臭,五六个表单估计就能满足全部要求——反正版权中心那帮家伙,他们也看不懂VFP代码。
嘿嘿。


vfp 可以将整个项目导出成 prg/txt。
2023-03-26 12:18
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
没有,反正导出来就是看着玩的,又不运行。
2023-03-26 12:40
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
以下是引用wp231957在2023-3-26 13:42:00的发言:

vfp本身就不行


我感谢还有一些大佬,如木瓜,ZhZ,Xiejie等,不断为 vfp 添砖加瓦,把不可能变为可能。
2023-03-26 15:29
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
由于 vfp 解释型的,我的推测是:

Add Object 时,在 prg 中 cnt 类己经实例化了。而 AddObject 则在代码没有结束之前,是并没有完成实例化操作的。

[此贴子已经被作者于2023-3-26 15:42编辑过]

2023-03-26 15:41
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
但往上一层如你例子中的 form 它在代码未完成之前就不能被实例化,我就不试了你好奇可以试一下,就是试一下 form 的宽度是否能适应 label 宽度。
2023-03-26 15:53
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
以下是引用mywisdom88在2023-3-26 15:54:38的发言:
然后,回到楼主问题




我没有问题,爱用 vcx 爱用 prg 我都尊重各位的决定。
2023-03-26 16:04
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
以下是引用吹水佬在2023-3-27 08:39:02的发言:

不知有无发觉,写程序的到了一定境界时都有点固执,容易产生将一些统一体的各方面对立起来论长短。



这便是本文也是本人的目的,不破不立。
2023-03-27 09:08
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:0 
以下是引用吹水佬在2023-3-27 09:19:25的发言:
其实可以换一个方式来讨论,避免出偏。
如,在类的应用方面:
vcx能做到的也许prg难以做得好的问题,有什么方法可以用prg能更好地处理该问题?
prg能做到的也许vcx难以做得好的问题,有什么方法可以用vcx能更好地处理该问题?


我相信我说得很清楚了,比如为什么设计时用 vcx 用时再转成 prg 。。。。
2023-03-27 09:26
快速回复:乱世中的类,是用 vcx 与 prg ?
数据加载中...
 
   



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

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