大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 在VB的ListView中动态加载记录

在VB的ListView中动态加载记录

时间: 2021-07-31 作者:daque

在考察数据库时,常常会遇到记载数目过多,对数据列表举行初始化时奢侈洪量功夫,运用户在加入界面时等候功夫过长。为领会决这个题目,咱们不妨经过运用动静加载数据的本领来实行。即当举行初始化时,不过加载小批的数据,使控件赶快实行初始化,让用户在较短的功夫内获得遏制权,这时候加载数据的几何不妨按照本质情景举行设定;而后,当用户震动视图的功夫,咱们检验和测定其震动的场所,确定能否须要连接加载数据,即使尚未表露的数据数目少于商定值,则连接加载确定量的数据,要不不作任何举措。如许一来,既不妨实行一切数据的加载,又不感化用户的操纵。

本来这种本领在vc中很简单实行,咱们只有相映相映列表的wm_vscroll就不妨了,然而在vb中,列表控件不径直扶助这个动静,这就须要咱们做少许特殊的处事,以实行这一进程。咱们犹如不妨运用计时器控件按期对列表状况举行监督,进而实行改正程,然而这种本领不只感化体例运转速率,并且功效也不是很好,以是在这边咱们仍旧运用相应wm_vscroll动静的本领。

为了实行这一功效,开始是在vb中处置列表控件的动静。因为vb中没辙径直处置咱们所须要的动静,在这边咱们就要用到一个api因变量将列表控件的动静处置进程树立为咱们本人设置的因变量。这个api即是setwindowlong,它的原形是

public declare function setwindowlong lib "user32" alias "setwindowlonga" (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long

它有三个参数:

hwnd 是要树立的窗体句柄

nindex 是要树立项手段索引,在这段步调里咱们将其取值为gwl_wndproc

dwnewlong 是要树立项手段值,在这段步调里即是咱们自设置的动静处置因变量的地方

它的归来值是一个长平头,是挪用这个api之前对应项手段值,即使树立波折,则归来0,对于简直的缺点消息不妨挪用getlasterror来赢得,在这边它将归来原始的列表控件的动静处置因变量的地方。

简直的做法如次所示:

1.       在现有的模块或新创造的模块中设置动静处置因变量

动静处置因变量应设置为底下的情势:

public function xxxlistproc(byval hwnd as long, byval imsg as long, _

                            byval wparam as long, lparam as long) as long

   

if (imsg = wm_vscroll) then

    if sb_endscroll = val("&h" & right(hex(wparam), 4)) then

      if frmxxx.xxxlistview.getfirstvisible.index + 100 > frmxxx. xxxlistview.listitems.count then

         loaddatafunc frmxxx. xxxlistview.listitems.count, 100

      end if

    end if

  end if

xxxlistproc = callwindowproc(g_oldproc, hwnd, imsg, wparam, lparam)

end function

这个因变量中运用了loaddatafunc对数据举行加载,它是一个自设置的因变量,第一个参数是数据加载的开始场所(第n条记载),第二个参数是要加载数据(记载)的数目。这个因变量不妨按照本人的本质情景设置,这边不过我运用的情势。其余,须要提防的是这个动静处置因变量必需设置在模块中,而不许设置在窗体中。

2.       当窗体初始化时将列表控件的动静处置因变量树立为自设置的动静处置因变量

在列表控件地方的窗体的初始化因变量中介入底下代码:

g_oldproc=setwindowlong(xxxlistview.hwnd,gwl_wndproc,addressof  xxxlistproc)

个中,xxxlistview.hwnd是列表控件的窗口句柄,这个属性是一个湮没属性,固然看得见,然而不妨平常运用;咱们运用addressof博得了咱们自设置动静处置因变量的地方。g_oldproc是一个全部变量,用来生存原始的动静处置因变量地方。

3.       当窗体退出时将列表控件的动静处置因变量树立为从来的因变量

在列表控件地方窗体的unload事变中介入以次代码:

setwindowlong xxxlistview.hwnd, gwl_wndproc, g_ oldproc

在这种处置本领中,最要害的即是实行对窗口动静的自设置处置,以是咱们运用了vb中不倡导运用的南针,固然不倡导在vb中运用南针,但有理地运用南针将对功效的实行具备很大的扶助。这边只引见了运用自设置动静处置因变量动静加载数据的一种本领,本来也不妨将这种本领运用到其它上面,进而巩固步调的功效,普及步调的功效。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.