| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4388 人关注过本帖, 1 人收藏
标题:XP计算器?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 50楼 TonyDeng
那么现在这个程序的 This.AddObject(lc_KeyName, "C_BUTTON", ga_Keys[ln_Index])
ga_Keys[]算不算OLE类 

梅尚程荀
马谭杨奚







                                                       
2012-09-19 13:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
ga_Keys[]是一个数组,元素是Key_t类型的,现在建立的是C_BUTTON类对象,ga_Keys[ln_Index]是给Init的实参。这个语句,是没有使用OLE参数的。只有在第二个参数是"OleControl"时,第三个才是OleClass参数。

授人以渔,不授人以鱼。
2012-09-19 14:01
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 52楼 TonyDeng
这样啊 明白了
很奇怪啊 VFP的数组不用先指定他的类型 而是根据赋给他的值来确定他的类型
传参数时 竟然可以把一个大堆参数放到一个数组中

梅尚程荀
马谭杨奚







                                                       
2012-09-19 14:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
VFP跟BASIC一样,不是强类型语言,变量的类型是可以动态变化的,这与C不一样。但现在我传的实参只是ga_Keys[]数组中的一个元素,不是一堆参数,这个元素是一个对象实体,你当它是C/C++中被deftype过的一种数据类型就是了。

授人以渔,不授人以鱼。
2012-09-19 14:12
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 54楼 TonyDeng
哦 这样啊 

那你的程序里面变量的下划线前一般都有两个小写字符 如ga_, gc_, lo_, ln_, tc_......这些有什么具体所指吗
一时没领悟过来

梅尚程荀
马谭杨奚







                                                       
2012-09-19 14:24
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
还有就是变量动态变化有什么利弊 为什么C语言要把他固定起来?

梅尚程荀
马谭杨奚







                                                       
2012-09-19 14:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那个类似匈牙利命名法,g是全局变量的意思,l是私有变量,a是数组,c是字符串,n是数值,等等。因为VFP不是强类型语言,所以用这样的命名法提醒自己那个变量是什么类型的,不至于赋值或比较错误,尽量与强类型语言的习惯一致。

强类型语言,是在编译时就确定变量的尺寸,分配内存容易,而且强迫赋值、比较之类的运算必须是相容的变量类型,这样在编译阶段就可以检查出大部分的错误。VFP和BASIC这种,不是编译型语言,是解释运行的,在执行时才临时分配内存,所以不需要那种事先检查,可以随时改变变量的数据类型(反正都是在堆中申请的空间),基本上解释型的语言都是这样。两种模式各有利弊,具体如何操作,你先思考一下,两种不同的语言都用一下,经验多了后,才能知道细微之处,现在给你说还早。

授人以渔,不授人以鱼。
2012-09-19 14:39
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 57楼 TonyDeng
哦 好的
程序代码:
SET DECIMALS TO 4
ON ERROR DO errHandler WITH ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
Main()
ON ERROR

CLEAR ALL
RETURN

SET DECIMALS TO 4这个是定小数点为4位 放这里有什么用处 ? 后面用到这个吗
 
为什么你的main()函数里不写个return而要把他放到这里?

梅尚程荀
马谭杨奚







                                                       
2012-09-19 14:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
还有救是
PROCEDURE errHandler(merror, mess, mess1, mprog, mlineno)
    MESSAGEBOX(Str(mlineno)+"表达式错误:" + mess)
ENDPROC
的参数mess在编辑环境里是有颜色的 貌似是系统规定过的标识符 不是说参数不能和系统的东西相同吗?
message()和message(1)的区别是什么啊


[ 本帖最后由 有容就大 于 2012-9-19 14:52 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-09-19 14:51
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
发现这个on error 和 errHandler()真是个神物 可以处理一些错误而最终显示窗口
如果去掉这个 程序无法运行出窗口来。。。

梅尚程荀
马谭杨奚







                                                       
2012-09-19 15:00
快速回复:XP计算器?
数据加载中...
 
   



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

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