欢迎来到天天文库
浏览记录
ID:42615734
大小:18.74 KB
页数:4页
时间:2019-09-18
《PB中TreeView控件使用技巧》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PB中TreeView控件使用技巧一、应用TreeView控件的一般步骤1、建立一个应用,并设好与数据库的接口,这是操作数据库的前提。2、在应用中建一应用窗口W_1,在其上加入二个名为dw_3和dw_4的datawindow控制对象和一个名为TV_1的TreeView对象。3、修改DW_3属性General:把Datawindowobjectname填写一个已存在的名为DW_date的datawindow(注意:它与datawindow控制对象是不同的),用于生成树视图项,将其Visible项设为不可见。4、修改DW_4属性Gener
2、al:把Datawindowobjectname填写一个已存在的名为DW_TS的datawindow对象,用于显示查询出的具体内容。5、编辑TV_1的属性TreeView的树视图项不能直接编辑,必须在Script中编写程序。Picture:在PictureName中加入四个不同的图标,用于代表树视图中的两个层次(一、二级)、两种状态(未选、选中)。General:可根据具体应用设定是否选中,其中:DeleteItems:运行中是否允许删除表项。DisablePragDrog:运行中是否允许拖放表项。EditLabels:运行中是否允许
3、单击表项来改变表项的标题。ShowButtons:是否在表项放显示+-按钮,有示相对的扩展和收缩。HideSelection:当该控件失去焦点时,选中项是否以高亮度显示。ShowLine:表项间是否加一竖线。LinesAtRoot:所有根层表项是否用竖线连接。Indentation:子表项相对于父表项的向右缩进度。6、编写TV_1的Script这里是TreeView控件的关键,也是难点。二、TreeView控件的信息构成及创建树视图项TreeViewItem是TreeView控件的基本信息单位,树视图项的生成一般有二种方法,一种是先生
4、成根层视图项,再在应用中动态生成下级视图项,另一种是把全部树视图项一次和成。两种方法各有优点,请根据具体情况选用,本例中采用后一种方法。1、树视图项TreeViewItem的主要属性Label:String型,树视图项的显示信息。Data:Any型,树视图项的内部值。Level:Integer型,树视图项在树视图中级别。Children:Boolean型,它决定该项是否有下一层(如图中书名)。PictureIndex:Integer型,该项非选中时所用的图标在图标队列中的编号。SelectedPictureIndex:Integer型
5、,该项选中时所用的图标在图标队列中的编号。2、生成TreeViewItem项用到的函数InsertItemFirst():将加入项作为第一项InsertItemLast():将加入项作为最后一项InsertItem():将加入项插入到指定项的后面InsertItemSort():按顺序放置。3、TreeView的常用事件Constructor:该事件在控件创建时触发,可在这里构造TreeViewItem。Click:单击TreeViewItem项时,执行查询程序。DoubleClick:双击TreeViewItem项时,执行查询程序。
6、ItemPopulate事件:该事件在某TreeViewItem项首次展开时触发,触发的同时系统会将该TreeViewItem项的句柄通过参数handle传递过来。它主要用来生成对应项的下层信息项。主要用于第一种方法。三、事件代码1、树视图控件TV_1的constructor事件代码integerli_rowcount,li_rowstringli_current_dn,li_last_dn,li_current_ei,li_last_ei//声明二个树视图的实例变量treeviewitemitvi_level_one,itvi_le
7、vel_two//longii_h_l_one//longii_h_l_twodw_3.settransobject(sqlca)//dw_3为隐含的数据窗口,存有生成树的数据li_rowcount=dw_3.retrieve()//行数dw_3.setsort("lb,pm")dw_3.sort()//生成树视图的各级树视图项forli_row=1toli_rowcountli_current_dn=dw_3.object.lb[li_row]//DW_3对象中"LB类别"li_current_ei=dw_3.object.pm[l
8、i_row]//DW_3对象中"PM品名"ifisnull(li_current_ei)thenli_current_ei=""endififli_current_dn<>li_last_dnthen//IFLB不与一级
此文档下载收益归作者所有