PB中如何实现下拉列表框的自动增量查询?

zzy198 2001-11-14 02:08:19
是不是得用WindwosApi函数SendMessage?怎么用?
万分感谢!!!
...全文
720 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjh211 2002-02-01
  • 打赏
  • 举报
回复
我出来放风一下,呵呵。谢谢给例子。

jianhua@chen.com.cn

timeover 2002-02-01
  • 打赏
  • 举报
回复
留下Email,我给您个例子!
zzy198 2001-12-03
  • 打赏
  • 举报
回复
ALLTEC(荔枝):
好像没有我要的那个功能啊?
bbsuner 2001-12-03
  • 打赏
  • 举报
回复
to:zzy198
前天我刚写了一个这个功能
与fengz写的差不多你好好把他写的看看就一定能做出来了不必觉得它很难其实fengz已经写的很清楚了你要给他加分哟别误会我可不认识他只不过他回答的对,只不过他写的是在单行编辑器,你可以不用ddlb
budongbudong 2001-12-03
  • 打赏
  • 举报
回复
不知道你看过pfc 么,其实你只要继承它的扩展类中的ddlb,它已经做好了。在根据你自己的要求改一点就可以了。在用pb做mis的时候的登陆前的身份验证的那个下拉列表匡好象就完全满足你的要求了。
当然也可以用dw的检索来实现,你可以看看pb的例子,有个很好的。不过你要懂

message的WordParm和Processed 的属性的意义!
  • 打赏
  • 举报
回复
何必那么麻煩?把ddlb的屬性設成排序,并允許編輯就行了,只要你在DDLB中輸入任何字符,它就會自動匹配的啦
ALLTEC 2001-11-27
  • 打赏
  • 举报
回复

网上 DOWN 的一个 从 PFC 抽出来的程充里有这个功能. 已发出请查收!
zzy198 2001-11-27
  • 打赏
  • 举报
回复
最好有实例寄给我zzy198@263.net
zzy198 2001-11-27
  • 打赏
  • 举报
回复
PFC?
fengz 2001-11-15
  • 打赏
  • 举报
回复
增量查询功能实现的关键有两点,一是单行编辑器能实时响应键盘的输入,捕捉每一个按键,获得其中的文本;二是数据窗口的模糊查询功能,即能够找到列ID左边文本与单行编辑器文本相等的行,这可以用“like”来实现。下面给出具体方法:
  1.定义单行编辑器的用户事件ue_enchange,事件的ID为:pbm_enchange。这个事件能响应键盘的输入。
  2.在单行编辑器的ue_enchange事件中编写如下脚本:
  long ll_found_row
  string ls_find
  ls_find = ″string(id) like ″ + ″′″ + this.text + ″%′″ //查找条件(左部分与单行编辑器文本相等)
  ll_found_row = dw_name.Find(ls_find, 1, dw_name.RowCount()) //查找符合条件的行
  if ll_found_row <= 0 then return
  dw_name.ScrollToRow(ll_found_row) //滚动到相匹配的行
  dw_name.SelectRow(0 , false)
  dw_name.SelectRow(ll_found_row , true) //将匹配行加亮显示
Functions 2001-11-14
  • 打赏
  • 举报
回复
PFC中有这个功能,如果你想自己做一个的话,参照它的代码吧。
看一下PFC的代码很好的。
dahaidao 2001-11-14
  • 打赏
  • 举报
回复
原来王涛给过一个例子,可以实现这个功能,可是我找不到了,你可以看看谁有。
chinalht 2001-11-14
  • 打赏
  • 举报
回复
ddlb_1.keyup( pbm_keyup ): this.postevent("ue_editchanged")
ddlb_1.ue_editchanged:
string ls
long k
this.setredraw( false )
this.post setredraw( true )
ls = this.text
k = this.finditem( ls, 0 )//这样不行就遍历所有项
if k > 0 then
this.selectitem( k )//把显示文字设为找到的
k = len( ls )
this.selecttext( k + 1, len( this.text) - k )//然后把不是输入的字符部分选中
//应该就可以了吧.
end if
反正肯定有办法:我现在没有pb可以测试,只能说说思路.
liu_nan 2001-11-14
  • 打赏
  • 举报
回复
抱学习态度看看
xmdou 2001-11-14
  • 打赏
  • 举报
回复
killerdanny说的对,用dw的editchanged能实现,但下拉列表框可能不行
zzy198 2001-11-14
  • 打赏
  • 举报
回复
可是怎么定位呀?
当输入字母“bl”时,下拉列表框就可以指向“black”???
killerdanny 2001-11-14
  • 打赏
  • 举报
回复
我的想法是用DW,然后在EDITCHANGED事件中查该值,再付回来!
pbworm 2001-11-14
  • 打赏
  • 举报
回复
你需要自己编程来实现.
首先你下拉列表框中的内容最好是排序好的。
然后你在sle的事件中判断用户是否按下了键或sle中的内容是否改变了,如果改变了,根据sle中的内容对下拉列表框中的内容进行查找,定位就可以了。
以前写了一个函数,不过看看没有什么作用,也不知道放到什么地方去了(而且当时写的函数好象还有问题).
zzy198 2001-11-14
  • 打赏
  • 举报
回复
我以前曾见过别人用VB做过一个这样的程序,好像引用了WindwosApi函数SendMessage。不知用PB能不能实现。小弟初学PB,请各位前辈指教!!!
zzy198 2001-11-14
  • 打赏
  • 举报
回复
比如说有一个文本框和一个下拉列表框。
下拉列表框中有待选项"all","bad","black","call"等英文字母
我在文本框中输入字母b,则下拉列表框中的内容自动指向第一个b打头的英文“bad”,
当我再连续输入字母l时,则下拉列表框指向“black”
加载更多回复(4)

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧