导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

pb 怎么用代码生成listbox,急啊!谢谢!给大家添麻烦了!

wuyuchang 2007-12-27 08:01:39
pb 怎么用代码生成listbox,急啊!谢谢!给大家添麻烦了!
...全文
164 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyuchang 2007-12-28
closeobject(lb_tmp)
写错了
是:closeuserobject(lb_tmp)
回复
wuyuchang 2007-12-28
关于listbox我还有一个问题,比如我这次用了,但是还没关闭,然后我有再加了一些数据,这时候listbox里的数据是原来和现在加的,还是只有现在刚加的呢?
回复
leio 2007-12-28
没有openuserobject,listbox就还没有实例化,不能用。
不想显示出来,可以在看不见的坐标去OPEN,比如-100,-100,这在窗口外面了。
listbox lb_tmp
openuserobject(lb_tmp,-100,-100)
lb_tmp.dirlist(path,0)

for i =1 to lb_tmp.totalitems()
ls_text [1]= lb_tmp.text(i))
next

closeobject(lb_tmp)

使用完毕,记得关闭。
回复
wuyuchang 2007-12-28
listbox 的问题,我想把listbox 和dirlist合用
那可以这这样吗?

listbox lb_tmp
lb_tmp.dirlist(path,0)

for i =1 to lb_tmp.totalitems()
ls_text [1]= lb_tmp.text(i))
next
回复
wuyuchang 2007-12-28
o !谢谢very much!
回复
leio 2007-12-28
上面就是代码生成的,在设计阶段那个listbox根本不存在。
回复
wuyuchang 2007-12-28
哦!我是想问listbox用代码生成,不是直接拉控件!告诉我,谢谢!
回复
leio 2007-12-28


按以下步骤操作一次,你就知道了。
1、新建一个窗口w_test
2、在此窗口上放一个按钮控件cb_1
3、在cb_1的clicked事件中写如下代码:
listbox l_listbox //定义listbox变量
OpenUserObject(l_listbox, 0, 0) //在w_test的0,0坐标处打开l_listbox
w_test.Control[UpperBound(w_test.Control)+1] = l_listbox //将l_listbox放入窗口控件数组内,当然也可以不放进去
//设置listbox的宽度、高度、坐标
l_listbox.width = 1000
l_listbox.height = 1000
l_listbox.move(100,100) //设置l_listbox的坐标,这里是放到100,100处
//设置这个listbox可见
l_listbox.visible = true

执行程序,打开w_test,点击cb_1,你会看到窗口上多出一个listbox控件。
如果你多次点击,就会在窗口上出现多个listbox,当然因为它们的坐标相同,所以前后覆盖会看不出来。

==============================
1、新建一个窗口w_test
2、在此窗口上放二个按钮控件cb_1,cb_2
3、在窗口的declare instance variables中定义变量如下
listbox l_listbox //定义listbox变量
4、在cb_1的clicked事件中写如下代码:
OpenUserObject(l_listbox, 0, 0) //在w_test的0,0坐标处打开l_listbox
//设置listbox的宽度、高度、坐标
l_listbox.width = 1000
l_listbox.height = 1000
l_listbox.move(100,100) //设置l_listbox的坐标,这里是放到100,100处
//设置这个listbox可见
l_listbox.visible = true

5、在cb_2的clicked事件中写如下代码:
if isvalid(l_listbox) then
closeuserobject(l_listbox)
end if

执行程序,打开w_test窗口,点击cb_1,窗口上会显示出一个listbox
然后再点击cb_2,这个listbox就被关闭了。

在关闭前,这个listbox就一直存在,你想对它做什么都行。

回复
wuyuchang 2007-12-28
看不懂,能帮我说清楚一点吗?
回复
leio 2007-12-27
忘了说明一点:
openuserobject这个函数只可在窗口或窗口内的控件、函数中使用。
如果在自定义userobject中是不可以用的。

如果需要在自定义userobject中使用,如果确定此自定义控件会放在某个窗口上,可以用以下语句:
this.getparent().dynamic OpenUserObject(l_listbox, 0, 0)
回复
leio 2007-12-27
listbox l_listbox
OpenUserObject(l_listbox, 0, 0)
//w_test指用于放这个listbox的窗口,如果只是临时用一下并且不需要看到此控件,以下内容可以不要
//以下内容使该控件放到一个窗口上,并设置其属性
w_test.Control[UpperBound(w_test.Control)+1] = l_listbox

//设置listbox的宽度、高度、坐标
l_listbox.width = 1000
l_listbox.height = 1000
l_listbox.move(100,100)
//设置这个listbox可见
l_listbox.visible = true

===========
如果需要在窗口内所有事件、控件等地方都可以调用这个listbox,最好把listbbox变量定义放到declare instance variables

如果只是临时用一下,可以在用完后closeuserobject
closeuserobject(l_listbox)

回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

813

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告