| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4388 人关注过本帖, 1 人收藏
标题:XP计算器?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-18 23:22:07的发言:

呵呵,干嘛不去偷看代码?我不知道的。

对对碰
再说你已经给了 迟早逃不出俺的法眼 嘿嘿

梅尚程荀
马谭杨奚







                                                       
2012-09-18 23:25
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-18 23:22:07的发言:

呵呵,干嘛不去偷看代码?我不知道的。

还真被我搞出来了 不过依然不尽如人意
为什么 控件名不能做参数 写成
程序代码:
 procedure Arrange
       parameters  btn_name, btn_top, btn_left, btn_caption, btn_forecolor
      with this.btn_name
             .Themes = .F.
             .Height = 27
             .Width = 35
             .Top = btn_top
             .Left = btn_left
             .Caption = btn_caption
             .ForeColor = btn_forecolor     

    endproc   
会提示没有btn_name这个东西?

程序代码:
    procedure Arrange
       parameters   btn_top, btn_left, btn_caption, btn_forecolor
             .Themes = .F.
             .Height = 27
             .Width = 35
             .Top = btn_top
             .Left = btn_left
             .Caption = btn_caption
             .ForeColor = btn_forecolor      
    endproc      

    procedure init
          local sp as Integer
          sp = 4
          store Rgb(255, 0, 0) to R
          store Rgb(0, 0, 255) to B
        with (0, 0, '7', Rgb(0, 0, 255))
        endwith
       
        with (Top, Left +  + sp, '8', B)
        endwith
       
        with (Top, Left +  + sp, '9', B)
        endwith
       
        with (Top, Left +  + sp, '/', R)
        endwith
        
        with (Top, Left +  + sp, 'sqrt', B)
        endwith
       
        with (Top +  + sp, Left, '4', B)
        endwith
        
        with (Top, Left +  + sp, '5', B)
        endwith
        
        with (Top, Left +  + sp, '6', B)
        endwith                 

        with (Top, Left +  + sp, '/', R)
        endwith                 

        with (Top, Left +  + sp, '%', B)
        endwith
    endproc
算了 偷看代码去 貌似瞄到一眼 给按钮赋值很简洁 忍不住了啊

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

梅尚程荀
马谭杨奚







                                                       
2012-09-19 00:32
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
public ga_Keys[28]


梅尚程荀
马谭杨奚







                                                       
2012-09-19 00:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2012-9-19 00:43:29的发言:

public ga_Keys[28]

这是可以从外部文件中读入的数据。

授人以渔,不授人以鱼。
2012-09-19 00:55
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-19 00:55:36的发言:


这是可以从外部文件中读入的数据。

看了半天终于发现你是在这里添加的28个按钮
FOR ln_Index = 1 TO ALEN(ga_Keys,1)
            lc_KeyName = "Key_" + PADL(ln_Index, 2, '0')
            This.AddObject(lc_KeyName, "C_BUTTON", ga_Keys[ln_Index])
是不是啊 555 知道的函数多久是好啊

梅尚程荀
马谭杨奚







                                                       
2012-09-19 01:04
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
老大 看了几遍 有个地方没理解
程序代码:
DEFINE CLASS C_BUTTON AS CommandButton
    Width = 40
    Height = 32
    FontName = "Terminal"

 
    *- 键名属性
    Key = ""
  

    PROCEDURE Init(t_Key)
        WITH This
            .Key = t_Key
            .Caption = .Key.Caption
        ENDWITH
    ENDPROC
这个Key是个属性? 那么一个属性为什么还能有属性  .Key.Caption?

梅尚程荀
马谭杨奚







                                                       
2012-09-19 11:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这里的Key是C_BUTTON的自定义属性,它被赋值为参数t_Key的值,即Key_t结构体的对象名,而.Key.Caption是那个结构对象中的字段。

授人以渔,不授人以鱼。
2012-09-19 11:40
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-9-19 11:40:37的发言:

这里的Key是C_BUTTON的自定义属性,它被赋值为参数t_Key的值,即Key_t结构体的对象名,而.Key.Caption是那个结构对象中的字段。

这样一个类只要用自己的属性获取另一个类的对象名就能包含其他类的对象了 也太强悍了吧

看了下这个介绍 有点问题
程序代码:
addobject 方法 : 运行时,在容器对象中添加对象。

语法 : Object.AddObject(cName, cClass [, cOLEClass] [, aInit1, aInit2 ...])

参数
cName : 指定引用新对象的名称。
cClass : 指定添加对象所在的类。
cOLEClass : 指定添加对象的 OLE 类。
aInit1, aInit2 ... : 指定传给新对象的 Init 事件的参数
cOLEClass : 指定添加对象的 OLE 类。究竟怎么理解好 ?是不是比cClass : 指定添加对象所在的类还要高级的一个东西?

梅尚程荀
马谭杨奚







                                                       
2012-09-19 13:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那是另外一种COM对象,比如TreeView之类.OCX文件,要在系统注册表注册的,现在我们使用的用DEFINE CLASS定义的类不需那个参数。

授人以渔,不授人以鱼。
2012-09-19 13:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
类代码中使用.AddObject(),其实就是运行代码中的CREATEOBJECT()或NEWOBJECT(),语法规定的名字不同罢了,做的事一样。当你要调用诸如Word、Excel之类的OLE对象时,就使用那个OleClass参数,有个该软件安装时在系统注册表中注册好的代码,填入那个代码就启动相应的外部软件了。VFP直接读写和处理Excel文档,就是这样操纵Excel的,即用VFP代码驱动Excel做事,不用人工干预。论坛上很多人说要读写Excel文档的数据,就可以用这种方法来解决。

授人以渔,不授人以鱼。
2012-09-19 13:48
快速回复:XP计算器?
数据加载中...
 
   



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

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