| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4899 人关注过本帖
标题:詳解VFP編程之四:屬性、事件和方法
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏
 问题点数:0 回复次数:24 
詳解VFP編程之四:屬性、事件和方法
如前所説,我們給Form的Caption賦値,從而改變了窗體標題欄的文字,給Label的Caption賦値,改變了標簽的文字。這裏,Caption就是所謂的“屬性”,每個對象都有它的属性,是它自己擁有的。

屬性,英文是property,是擁有所有權的東西(故也是私人財產的意思),引申爲專有的性質。不同的對象,都有屬於自身的性質(這就是“屬性”的來源),不同種類的對象擁有不同的屬性。比如,對人這個類,張三的腦袋跟李四的腦袋雖然都是腦袋,但卻是不同的兩個腦袋,所以,指稱對象的腦袋時必須明確説是誰的腦袋,這就是引用屬性時前面要加對象名的原因。另一方面,不同類雖然可能有相同名稱的屬性,但可能是完全不同的意義,正如我們看到,Form的Caption與Label的Caption表現不同。對各種不同的屬性,我們無法想當然,必須依據對象實際情況來理解,也就是説,我們應該瞭解它所歸屬的類——事實上我們認識事物也是從歸類開始的。

那麽,一個對象,我們如何知道它有什麽屬性呢?

在表單設計界面中,我們可以通過屬性框查看:
图片附件: 游客没有浏览图片的权限,请 登录注册

鼠標在對象上點擊一下,右側的屬性對話框就會刷新爲這個對象所有的屬性、事件和方法,翻查我們想要的,進行設置即可。雖然在這裏對話框中,每個項目的下方都有若干文字簡介其意義和用法,但明顯不夠,最齊全的資料就是幫助文檔(任何語言都是這樣的)。

在幫助系統中,每個(VFP內置的)種類都有詳細的清單:
图片附件: 游客没有浏览图片的权限,请 登录注册

我們平時就應該經常翻閲常用對象的這些資料,瞭解每種對象大概都有些什麽屬性、事件和方法,它們都是什麽意義、起什么作用的,寫個小程序測試一下每個項目的具體效果。學習的大部分時間,都應花在這個地方。

[此贴子已经被作者于2016-2-5 14:29编辑过]

搜索更多相关主题的帖子: property 英文 私人 
2016-02-04 22:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
屬性,雖然説是一種性質,描述性的,但其實它還是有行爲的。在語法上,我們看到無非是讀和寫,但其實,property是一種特殊的函數(方法),這點稍後再講。有一些屬性,除了改變內容,還附帶動作,比如Top,這是控件在容器內的頂坐標,當我們對它賦値時,並非僅僅把數値改變了而已,而是馬上有相應的動作,控件的頂部位置變化了,變到所指定的位置,這實際就是執行了方法動作,這不是一個値,而是一整套行爲。相對另外的一些編程語言(如C/C++),改變對象的字段變量,還需要自己主動調用對應的動作程序,才能把變化呈現出來,VFP不用這樣。

[此贴子已经被作者于2016-2-5 15:00编辑过]


授人以渔,不授人以鱼。
2016-02-04 22:14
胡七七
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:304
专家分:851
注 册:2015-5-14
收藏
得分:0 
好的,等更
2016-02-04 23:46
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
标记
2016-02-05 09:26
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:0 
版主大大辛苦了!
此乃纪念vfp之举。目前最高版本9.0,2007年停止研发,近来世界语言排行榜勉强进前50名。想当年dBaseIII是我们必考科目啊。
编程工具、理念更新如此之快,只有年轻人跟的上了!
2016-02-05 11:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
VFP,永远的爱!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-02-05 14:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
事件(event),顧名思義,就是一個特定事物的出現。比如,計時器計時到指定數、設備被插拔、鼠標點擊和鍵盤按鍵動作等,都是事件,Windows和VFP定義了一些事件發生時會傳遞消息,這些能够引起消息觸發和傳遞的事件,不是任意定義的,亦即我們無法自己定義事件(這點在事件能够接收的參數上明顯體現出來,事件的參數是固定的,無法增減),祇能使用系統內定的那些事件,但我們可以任意定義方法。方法(method)是執行一些動作,實際上就是普通的函數或過程。

當事件發生時,系統啟動相應的事件函數,並把指定的參數傳入,類本身有處理事件的特定行爲,我們可以在這裏增減動作,做比類設計多或少的動作,甚至讓程序廢除原先的動作而不動作。在設計器對應事件中寫代碼,就是我們要進行的獨特動作。正如“事件”這個名字告訴我們的,事件會在什麽時候被觸發,不是我們可以控制的,事件的發生,是任意的、無序的,比如你無法預知用戶會不會在不恰當的時刻點擊窗體的關閉按鈕而令你來不及儲存數據,你也不能期望用戶在點擊乙按鈕之前先點擊甲按鈕,同一個動作,他也可以不如你願地反复執行多次,這一點特性,是事件驅動程序與傳統面向過程代碼驅動程序設計的本質差異,正是這個差異,使編程思維翻天覆地的變化。

通常,事件的發生是被動的,也就是説,寫在事件中的代碼,什麽時候被執行、執行之後會引起什麽後果,都要我們事先考慮周詳。方法與此不同,方法是由我們主動調用的。這其實就是事件與方法的區別點,不過,屬性、事件和方法,界限不是那麽截然的,故而VFP幫助文檔都把它們放在一起,事實上它們也不是彼此隔絶的。有些事件,既是事件,也是方法,比如resize。事件的代碼,也是可以主動調用的,即哪怕它實際上並沒有發生,我們也可以用代碼調用那個事件函數,最典型的就是Init事件。

對象的方法,不僅僅局限於VFP內定的那些,絶大多數時候,我們都可以寫自定義方法,也應該多寫自定義方法。

[此贴子已经被作者于2016-2-5 16:44编辑过]


授人以渔,不授人以鱼。
2016-02-05 16:19
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
给别人一碗水,自己要有一桶水。我深知写文章的艰辛。很多东西,自己了解是一回事,而要写出来让别人看明白,就是另一回事了。我也在本论坛写了几篇VFP开发漫谈的短文,原计划写 50 篇,可后来忙于日常事务,写到第 30 篇时实在坚持不下去,就放弃了。

版主这几篇短文,文字通俗易懂,图文并茂,确实很见功力,要比市面上的许多教科书效果好,如果能将繁体改为简体就更好了,毕竟简体更符合大多数人的阅读习惯。希望能坚持下来,加油!

[此贴子已经被作者于2016-2-5 16:38编辑过]


泉城飞狐
2016-02-05 16:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
事件的触发的先后次序,对编程来说相当重要,下面是张洪举书中的资料:
图片附件: 游客没有浏览图片的权限,请 登录注册


这个事件触发的序列资料,应该抄录起来,随时能够查阅。实际上,它是有内在道理的,动脑筋想一下,也能理解为什么是这么一个顺序,而且为什么要设置这样一些事件,尤其是某些事件,看起来功能是差不多的。这点功课,就留给读者吧。吃透这一点,脑袋可以开一个大洞。张书的权威性,体现在这些东西上。

[此贴子已经被作者于2016-2-5 17:50编辑过]


授人以渔,不授人以鱼。
2016-02-05 17:32
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
学习一下,谢谢

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-02-08 15:18
快速回复:詳解VFP編程之四:屬性、事件和方法
数据加载中...
 
   



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

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