delphi函数里面不可以出现控件吗

我想把读取listbox每行文件名封装成一个函数,但是编译提示未能识别listbox1,我想问问自定义函数语句里面不能出现控件的吗?... 我想把读取listbox每行文件名封装成一个函数,但是编译提示未能识别listbox1,我想问问自定义函数语句里面不能出现控件的吗? 展开
 我来答
eee2356eee
2010-07-24 · TA获得超过1139个赞
知道小有建树答主
回答量:389
采纳率:0%
帮助的人:608万
展开全部
函数和控件本身是没有关系的
控件实际也就是一个对象而已,这里的listbox1就是TListBox的对象句柄,是可以传递的

根据提示,很明显显示无法识别listbox1,应该是作用域的问题,通过窗口编辑器创建的控件,默认是以成员变量的形式存在于窗口类中的

如果楼主要封装的函数是窗口类的成员函数,是可以直接访问成员变量listbox1的,既然提示未能识别
我想你的函数可能不是成员函数,这时访问的时候要带上窗口变量名的,因为Object Pascal中类成员默认是published的,外界可以访问

比如listbox1是窗口类TmainForm的成员变量,那么创建窗口的时候同时会声明一个窗口类TmainForm的变量的,该变量由Delphi运行库初始化,可能为mainFor1,当然这在Delphi中可以修改,需要查看你自己的命名
这时如果要在外部函数中访问listbox1,就要这样访问mainForm1.listbox1来访问,如果学习过面向对象的封装思想,这一点应该比较清楚
xsyhzhb1991
2010-07-24 · TA获得超过1.4万个赞
知道大有可为答主
回答量:5125
采纳率:75%
帮助的人:8949万
展开全部
控件的指针可以作为函数的参数传递。
但是要注意跨窗体的要注明Form1->ListBox之类的才行,否则出错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seanpim
2010-07-24 · TA获得超过122个赞
知道小有建树答主
回答量:538
采纳率:100%
帮助的人:117万
展开全部
楼上已经很全面了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式