 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 1 樓
|
發表於: 星期五 三月 12, 2004 10:40 pm 文章主題: [轉貼]如何在 VFP 主視窗中自定義事件 |
|
|
這是在「動感論壇」上看到的。SomeDream 原創的。
如何在 VFP 主視窗中自定義事件(如 Click、RightClick、Resize 等等)
看了 lqy821110 大俠在技術文章中所寫的《如何在 VFP 主視窗中建立自定義的事件、方法、屬性?》一文,很有裨益。(詳見http://www.vfp.cn/article_view.asp?id=725)
不過該文似乎只說明了如何在 Screen 中自定義屬性和方法,而 Screen 的預設事件如如 Click、RightClick、Resize 等等卻無法通過可視化的手段加以更改。例如你可以在一個自定義的視窗的 Click 事件中寫上一段代碼,執行時只要按一下該視窗,這段代碼就會執行。但是如果你想對 VFP 主視窗也如法炮製,好像就 …… 不是很方便了。
幸運的是 VFP8 為我們提供了一個事件連結函數 BindEvent(),可以說明我們實現這個功能。BindEvent()函數可以把事件、屬性或方法從一個 Visual FoxPro 物件連結到另一個 Visual FoxPro 物件,根據這個思路,我們只要自定義一個物件,在自定義的事件或者方法中寫上我們要執行的代碼,然後把它連結到 Screen 的 Click 或者 RightClick 等的事件中就可以了。
其範例代碼如下:
代碼: |
_Screen.AddObject("oScreenHook","ScreenHook")
&& 在 Screen 中 Add 一個自定義的物件
BINDEVENT(_SCREEN,"RightClick",_screen.oScreenHook,"RightClick")
&& 在連結該自定義物件的 RightClick 事件到 Screen 中
DEFINE CLASS ScreenHook AS CUSTOM
&& 定義一個基於基本類別 Custom 的類,類名為 ScreenHook
PROCEDURE RightClick && 建立自定義的事件 RightClick
=MESSAGEBOX("RightClick!", 64,_Screen.Caption) && 要執行的事件
ENDPROC
ENDDEFINE
READ EVENTS
|
先執行這段代碼,然後右鍵按一下 VFP 主視窗就可以看到效果了。你還可以把自己做的右鍵功能表加入到這段程式中來。不過要注意的是,這段程式好像僅在 VFP8 中適用。
以上所寫都是一點個人淺見,若有錯誤尚請各位高手大俠不嗇指正。 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 2 樓
|
發表於: 星期三 三月 24, 2004 5:46 pm 文章主題: |
|
|
post lqy821110 大俠在技術文章中所寫的《如何在 VFP 主視窗中建立自定義的事件、方法、屬性?》一文 作比較
如何在VFP主窗體中創建自定義的事件、方法、屬性?
2004年3月10日 作者: 『動感游標』 瀏覽選項: 顏色 默認 灰度 橄欖色 綠色 藍色 褐色 紅色 本文已被瀏覽 53 次
今天有位網友留言,問如何在主窗體中創建事件,我盡我所知解答如下,請大家參考:
Screen是VFP內存變量,基於基類form,屬性、事件或方法,可在程序中引用,如要改變VFP窗體的標題(VFP)和背景色(紅色)並居中,則可以寫成:_
screen.title="VFP"
_screen.backcolor=255
_Screen.autocenter=.t.。
若要在主窗口編寫自定義的事件,則較麻煩。至少要經過二步:第一步:定義一個自已的類,在這個類中來創建需要的事件或方法或屬性;第二步則是在_Screen中添加對象,並執行對像中的事件或方法。如下面我們可編寫一個程序,運行後可以在主窗體中顯示一個消息窗(事件):
&&改變主窗體的屬性
_Screen.caption="我的主窗體" &&改變主窗體的標題 (我的主窗體)
_Screen.BackColor=65535 &&改變主窗體的背景色(黃色)
&&第二步:在主窗體中添加對象,並執行事件或過程
_screen.AddObject('mymess','dismess') &&添加對像
_screen.mymess.DispMessage &&執行自定義的過程
&&第一步:在主窗體中定義類,並創建事件或過程
DEFINE CLASS dismess AS Custom && 定義一個基於基類Custom的類,類名為dismess
PROCEDURE DispMessage &&創建自定義的過程,過程名為DispMessage
MESSAGEBOX("你好嗎?這樣就可在主窗體中間接的建立自己的事件了!", 256,"好消息") &&要執 行的事件
ENDPROC
ENDDEFINE _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 3 樓
|
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|