VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

[求助]哪位大侠能帮我审一下这段有关类的代码

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
MORNING



註冊時間: 2006-01-04
文章: 12


第 1 樓

發表發表於: 星期一 一月 16, 2006 3:18 pm    文章主題: [求助]哪位大侠能帮我审一下这段有关类的代码 引言回覆

这是一段本人下载的有关动感效果按扭的类代码,本人按原代码测试了一下,出现了几个错误提示:1,locontrol不是一个对象 2,找不到属性controls
有哪位高手能指教一下吗?该怎么样修改?谢谢!






DEFINE CLASS newcmd AS container
Width = 24
Height = 24
BackStyle = 0
BorderWidth = 0
Name = "newcmd"

*在容器中添加命令按钮
ADD OBJECT command1 AS commandbutton WITH ;
Top = 0, ;
Left = 0, ;
Height = 24, ;
Width = 24, ;
*命令按钮的picture属性值要与图像的此属性值相同
Picture = "wizards\graphics\new.bmp", ;
Caption = "", ;
*将命令按钮类visible设置为F,使其在创建时不可见,由用户鼠标移动时,来激发图像控件的mousemove事件代码来设置为T,使其显示。
Visible = .F., ;
SpecialEffect = 1, ;
ColorSource = 0, ;
Name = "Command1"

*添加图像控件用于控件按钮的初始画面
ADD OBJECT image1 AS image WITH ;
*此属性值要与命令按钮的picture值相同
Picture = "wizards\graphics\new.bmp", ;
BackStyle = 0, ;
BorderStyle = 0, ;
Height = 20, ;
Left = 4, ;
Top = 4, ;
Width = 20, ;
Name = "Image1"
*注意:在将命令按钮控件与图像控件添加到容器中时将两者的picture 属性设置同一图像文件,将二者的图像层叠起来,看不出破绽。

PROCEDURE image1.MouseMove
*Image1.MouseMove()事件
*功能:1 当鼠标移动到工具栏上当前图象对象上时,利用循环对工具栏中每个容器中的控件进行判断;
* 显示当前容器对象中的按钮,隐藏当前图象对象;而工具栏中其它容器中的对象与此反之。
*调用点:系统自动调用。
*语法:objectname.mousemove()(调试时使用)
*参数:无
*说明:如果你在此类的派生子类或对象中的mousemove中添加代码,请在代码中加入DODEFAULT()以保证
*它的派生子类或对象执行此过程。
LPARAMETERS nButton, nShift, nXCoord, nYCoord

local loobject,locontrol
*定义局部变量
*loobject:对象型;为工具栏的controls属性(对象数组)中的元素(注:controls为包含在工具栏对象中的控件)
*locontrols:对象型;为当前工具栏控件loobject(容器对象)中controls属性(对象数组)中的元素。

*利用循环将工具栏controls对象数组中的每个对象进行判断
for each loobject in this.parent.parent.controls
*如果工具栏中的当前控件为容器类(container)且此容器类对象为当前图象对象的容器
if (lower(loobject.baseclass)='container') and (loobject.name=this.parent.name)
*隐藏当前图象对象
this.visible=.f.
*显示当前容器中的命令按钮
this.parent.command1.visible=.t.
*以上两步达到鼠标移动到工具栏上当前图象上时突出按钮的效果
*继续下次循环
loop
else
*当鼠标从工具栏中的一个按钮移动到另一个按钮时,将突出的按钮恢复原样。
for each locontrol in loobject.controls
*如果locontrol为图象类(Image)控件
if (locontrol.baseclass=this.baseclass)
* 显示非当前容器中的图象控件
locontrol.resettodefault('visible')
else
*locontrol为命令按钮类(commandbutton)控件
*隐藏非当前容器中的命令按钮控件
locontrol.resettodefault('visible')
endif
endfor
endif
endfor
ENDPROC


ENDDEFINE
回頂端
檢視會員個人資料 發送私人訊息
小賴



註冊時間: 2004-12-27
文章: 476


第 2 樓

發表發表於: 星期一 一月 16, 2006 4:08 pm    文章主題: 引言回覆

無可奉告 !
因為執行起來未發生錯誤 ....


你必須把這類別置於其他Container內才可(簡單一點就直接置於FORM內)
例如 ..
AA = CREATEOBJECT("FORM")
AA.AddOBJECT("NEW1", "NewCmd")
AA.NEW1.Visible = .T.
AA.SHOW
READ EVENTS
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
MORNING



註冊時間: 2006-01-04
文章: 12


第 3 樓

發表發表於: 星期一 一月 16, 2006 7:39 pm    文章主題: 引言回覆

我是置于一个表单内的呀!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作