PB控件说明.docx
《PB控件说明.docx》由会员分享,可在线阅读,更多相关《PB控件说明.docx(29页珍藏版)》请在冰豆网上搜索。
PB控件说明
[PB]-控件
(一)
xt'If(ls_pathname)ThenReturns1ifitsucceedsand-1ifanerroroccurs.Ifanyargument'svalueisNULL,SetStatereturnsNULL.
★(picturename)其中controlname为图形列表框或下拉图形列表框控件的名称;picturename为字符类型,是要添加的图形文件名称。
函数返回值:
Integer.Returnsthepictureindexnumberifitsucceedsand-1ifanerroroccurs.若是想添加pb系统提供的那些经常使用图片,比如想添加checkin!
图片,能够利用下面的语句:
("checkin!
")该函数的操作相当于在pictures属性页中的操作。
★(index)其中controlname为图形列表框或下拉图形列表框控件的名称;index为integer型,是要删除的图片的索引号,若是指定的索引号不存在那么可不能删除任何图片。
返回值:
Integer.Returns1ifitsucceedsand-1ifanerroroccurs.
ab页面名称.控件名称。
。
若是脚本所在控件和被引用控件在同一个标签页时,能够直接利用控件名称,但利用全称引用也没有错误;若是脚本所在控件在其他标签页、窗口或其他的标签控件上,这时都应该利用全称来引用。
【属性】那个地址所说的标签属性包括两方面的内容,一是标签控件的属性,另一个是标签页的属性,这两个属性是完全不同的属性。
*经常使用标签控件属性▲NameString类型,为标签控件设定名称,应该尽可能采纳可读性较好的名称,以便引用。
▲TagString类型,能够用于任何目的的标记值。
▲Visible布尔类型,设定标签控件是不是可见。
该属性缺省为True。
▲Enabled布尔类型,当取值为False时,用户不能在不同的标签页之间切换,而且也不能利用标签页中的控件。
该属性缺省为True。
▲PictureOnRight布尔类型,指定标签上图片的位置。
该值为True时,图片在右面,不然在左面。
▲PowerTips布尔类型,该属性是一个很不错的属性,当鼠标指针在标签上停留片刻时,若是该属性为True那么会显示一些提示信息,若是该属性为False就可不能显示提示信息。
那个属性关于用户快速把握开发的应用软件有专门大的帮忙。
▲FixedWidth布尔类型,设置标签宽度是不是固定。
当该值为True时所有标签的宽度和最长的标签的宽度看齐,当该值为False时标签的宽度自动调整以适合自身文本的长度。
▲FocusOnButtonDown布尔类型,确信在选中标签页时标签页上是不是显示虚线矩形框。
该属性缺省为True。
▲ShowText布尔类型,确信是不是显示标签上的文本,该属性缺省为True。
▲ShowPicture布尔类型,确信是不是显示标签图形。
该属性缺省为True。
▲PerpendicularText布尔类型。
当该属性为True时,标签页上的文本为竖向显示,不然为横向显示。
该属性的缺省值为False。
▲MultiLine布尔类型,标识标签控件是不是能够在多行内显示各个标签。
当一行内没有足够的空间显示所有标签时,若是该属性为True那么自动分为多行显示,不然显示左右该动箭头。
该属性缺省为False。
建议尽可能幸免将该属性设置为True,如此会利用户感觉界面复杂,而且利历时容易引发混淆。
▲RaggedRight布尔类型。
若是该属性为True,标签或利用自动宽度或利用固定宽度(FixedWidth属性为True时),即便控件标签行的右边有空间也会保留;若是该属性为False,标签会自动调整宽度以充满控件横向的整个空间。
该属性缺省为True。
▲BoldSelectedText布尔类型。
关于当前选中的标签页是不是将文本设置为粗体。
该属性缺省为False。
▲CreateOnDemand布尔类型。
当该属性为True时,只有当用户在第一次利用该标签页时才实例化标签页上的对象;当该属性为False时,在标签控件创建时就实例化每一个标签页上的所有控件。
该属性的缺省值为False,但为了加速窗口打开的速度和没必要要的实例化操作而节省资源,建议将该属性设置为True。
▲SelectedTab整数类型。
设置在创建标签控件时所显示的选中标签页的索引号。
该属性缺省是1,也确实是选中刚创建标签控件时的第1个标签页。
▲TabPosition列举类型。
该属性是标签控件比较重要的一个属性,能够确信标签的显示位置。
该属性的缺省取值为TabsOnTop!
,表示标签显示在标签控件的上面。
▲Alignment列举类型,用来设置标签上文字的对齐方式。
当标签控件的属性RaggedRight为False而且标签没有充满上面的空间时利用该属性成效比较明显。
▲BackColorLong类型,指定标签控件的背景颜色。
标签控件的背景颜色不阻碍标签页和标签的颜色。
*两个标签页的属性▲ObjectTypeUserObjects类型,这是一个用于标签页用户对象的只读属性。
▲Control[]WindowObject类型,这是标签页内控件的一个只读数组,通过该数组能够访问标签页上的所有对象。
Control[]和ObjectType属性是互斥的。
【事件】标签控件的事件尽管很多,有17个,但自己特有的事件很少,仅有SelectionChanging和SelectionChanged两个。
◆SelectionChanging事件在用户选择一个不同的标签页时、在新的标签页被选中之前触发。
该事件的两个参数oldindex和newindex在该事件的脚本中能够直接利用,用来标识原先选中和当前选中的标签页,这两个变量和标签页的索引号相对应。
该事件的典型编程是检查原先标签页上的特定操作是不是完成,若是已经完成那么许诺跳转到其他标签页上,不然显示必然的提示信息而且不许诺用户跳转到其他标签页上。
该事件的返回值0表示许诺用户跳转到其他标签页,返回值1表示不许诺跳转到其他的标签页。
◆SelectionChanged事件在新的标签页选中后触发。
该事件的典型编程是对新选中标签页进行初始化工作。
当在不同的标签页上切换时,标签页显示之前有可能要进行一些界面方面的调整,因此SelectionChanged事件是其缺省事件。
该事件在用户选择不同的标签页以后触发,它的两个参数oldindex和newindex指出从哪个标签页跳转到哪个标签页,在脚本中能够直接引用。
在该事件中进行数据检索是实现数据库访问的一种方便方式。
若是有不止一个标签页中包括数据窗口,在窗口打开时检索数据会严峻阻碍窗口的打开速度,不如在该事件下检索数据。
如此处置,不仅能够加速窗口的打开速度,还能够幸免一些没必要要的数据检索,因为有些标签页可能在用户的某次工作中全然就用不到。
////////////////////////////////////ListView
【其他】
■控件显示样式ListView控件能够用下面的四种形式显示信息。
大图标方式:
每一个项目都显示为大图标,图标下面的标签显示必然的文字信息。
用户能够在该控件内拖动图标。
小图标方式:
项目显示为小图标,而且每一个项目的右边都有一个标签。
用户也能够在视图内拖动选中的图标。
列表方式:
项目显示为小图标,每一个图标右边都有一个标签,而且依照必然的顺序以列优先方式显示,显示样式和上面的相同。
报表方式:
项目以多栏列表显示,左侧的栏显示图标和标签,用户能够依照自己的需要指定任意数量的附加栏并能够设定每一个栏内显示的相应数据。
■典型编程如何利用数据动态构建ListView控件、在不同的显示样式之间切换和对选中对象进行处置,这是该控件最经常使用的三种编程情形。
下面别离加以介绍。
该控件中显示的数据能够是静态的,在开发时就能够够确信;也能够是动态的,需要依照用户的数据改变该控件的显示内容,这种情形更具有普遍性。
如何依照用户的数据初始化该控件,这是该控件的一个超级典型的编程。
编程思路和开发环境中的设定进程是相似的,也需要第一设定要添加项目的label,data和要利用图标的索引号。
下面是一段典型的编程:
ListViewItemllvi_custIntli_numrows,li_indexDataStorelds_curstSetPointer(HourGlass!
)Lds_cust=Createdatasotre()//第一清除ListView中其他的项目//为报表显示样式创建多个列("公司",Left!
700)("",Left!
500)("",Left!
400)//检索数据="d_customer"(SQLCA)li_numrows=()//若是没有检索到数据那么直接返回Ifli_numrows<=0ThenDestroylds_cust//释放DataStore对象的内存空间Return//返回EndIfForli_index=1toli_numrows//若是检索到了数据,对数据逐条处置=+"~t"+&+"~t"+&//项目标签=//项目的数据=1//项目的图片(llvi_cust)//添加该项目NextDestroylds_cust//释放DataStore对象的内存空间
上面的脚本利用DataStore来提取数据,若是检索到数据,就将每条数据添加到ListView控件中,若是没有检索到数据就直接退出。
添加项目到ListView时,第一为ListViewItem类型的变量赋值,包括label,data和pictureindex三项,赋值完毕后将该变量的值添加到ListView中。
如安在不同的显示样式之间进行切换ListView控件的属性View是一个列举类型的属性,通过修改该属性使其取不同的值能够改变该控件的显示样式。
能够利用的取值有:
ListViewSmallIcon!
表示以小图标样式显示。
ListViewLargeIcon!
表示以大图标样式显示。
ListViewList!
表示以列表样式显示。
ListViewReport!
表示以报表样式显示。
比如,能够设置多个命令按钮,不同的按钮被点击时都改变ListView的显示样式。
在其中的“报表显示样式”按钮上能够编写如下脚本:
=ListViewReport!
固然,还能够在一个菜单的各个菜单项中编写脚本,当在ListView控件上利用鼠标右键时弹出该菜单。
具体方式取决于开发人员的编程风格和用户的具体要求。
如何提取选中项目的内容事实上显示样式只是一个表面问题,而提取选中项目的内容才是最终的目的。
应该第一判定哪个项目选中,然后再读取选中项目的数据。
判定项目是不是选中能够通过SelectedIndex函数、ListViewItem类型对象的Selected属性等来实现。
读取指定项目的数据能够通过ListViewItem类型对象的Label和Data属性来获取。
下面是一个最复杂的典型编程,该程序从一个许诺同时选中多个项目的ListView控件中读取所有选中项目的标号和数据,脚本如下:
Intli_indexListViewItemllv_item
Forli_index=()To()(li_index,llv_item)IfThenMessageBox("提示",String(li_index)+"是选中的~r~n标号:
"+&+"数据:
"+String)EndIfNext
上面的脚本第一概念一个ListViewItem类型的变量,利用GetItem将ListView的项目读取到该变量中,通过判定该变量的Selected来得知项目是不是选中。
函数SelectedIndex来获取第一个被选中的项目的索引号,循环直处处置完最后一个项目。
在其他很多资料上都介绍的利用State函数循环处置多项选择ListView中的项目,事实上是行不通的。
另外,若是在ListView控件的相关事件中编程,能够直接利用事件的相关参数来获取选中的项目。
比如,在DoubleClicked事件中编写脚本,读取用户双击项目的数据,并依照该数据做必然的处置,这也是一种比较经常使用的典型编程方式。
下面是该事件中一段典型的脚本:
ListViewItemllv_item(index,name)SetPointer(HourGlass!
)上面的脚本在用户双击选中ListView中的项目时读取该项目的标签,并以该标签作为参数检索其他的数据窗口。
【属性】
ListView属性
▲Visible布尔类型的变量,表示ListView是不是可见。
该属性缺省为True。
▲Enabled布尔类型变量,表示ListView是不是可用。
该属性缺省为True。
▲FixedLocations布尔类型变量,表示用户是不是能够拖动控件中的项目来改变其位置。
该属性缺省为False。
▲EditLabels布尔类型变量,表示用户是不是能够在控件中编辑项目的标签。
该属性缺省为False。
▲AutoArrange布尔类型,表示是不是自动排列图标。
该属性的缺省值为False。
▲ExtendedSelect布尔类型,表示用户是不是能够选择多个项目。
该属性的缺省值为False,是一个超级重要的属性。
▲ButtonHeader布尔类型,当为True时报表视图中的题目显示为按钮而不是标签,该属性的缺省值为True。
▲DeleteItems许诺用户利用Delete键删除列表中的项目。
该属性缺省为False。
▲HideSelection若是该属性为True,当控件失去核心时,选中的项目不显示选中状态;若是该属性为False,当控件失去核心时选中项目仍然显示为选中状态。
该属性的缺省值为True。
▲LabelWrap该属性设置项目的文字是不是换行显示仍是只在一行显示。
该属性的缺省值为True,表示换行显示。
▲Scrolling该属性表示控件是不是能够该动显示其中的项目。
缺省为True。
▲ShowHeader表示题目是不是显示在报表视图中。
该属性缺省为True。
▲CheckBoxes表示状态图片是不是能够被CheckBox替代。
若是设置该属性为True,那么CheckBox缺省为非选中状态。
该属性缺省为False。
▲TrackSelect该属性能够指定当鼠标在项目上移动时是不是以不同的颜色表示。
当该属性设置为True时,鼠标在项目上停留那么以不同的颜色表示,当停留一按时刻后自动选中该项目。
▲OneClickActivate表示鼠标单击是不是激活ItemActivate事件。
当该属性取值为True时,单击鼠标触发ItemActivate事件,而且鼠标位于某项目上时致使项目的颜色改变(成效和TrackSelect相同)而且鼠标的形状为手型。
▲TwoClickActivate表示鼠标双击是不是触发ItemActivate事件。
▲GridLines指定报表样式时是不是显示网格线。
该属性缺省为False。
▲HeaderDragDrop该属性指定在报表样式中列头是不是能够拖动来改变列的顺序。
该属性缺省为False。
▲FullRowSelect该属性指定在报表样式中是不是选中整行的数据。
该属性的缺省值为False。
▲UnderlineCode当0neClickActive属性为True时,该属性有效。
该属性指定没有选中的项目是不是显示下划线,为True时表示显示。
▲UnderLineHot不管0neClickActive仍是TwoClickActivate属性为True,该属性都有效。
该属性取值为True,表示HotTracking有效,而且高亮显示的项目带有下划线。
该属性的缺省值为False。
▲Border该属性指明ListView控件是不是有边框,缺省值为True。
▲BorderStyle列举类型的属性,能够设定ListView控件的边框类型。
当Border属性取值为True时该属性有效。
缺省为StyleLower!
。
该属性的可用值有StyleBox!
,StyleLowered!
,StyleRaised!
和StyleShadowBox!
。
▲SortType列举类型的属性,缺省值为Unsorted!
,表示不进行排序。
能够利用的值还有Ascending!
(升序),Descending(降序),UserDefined!
(用户概念)和Unsorted!
(不排序)。
▲View列举类型的属性,表示该控件中的项目初始化时的显示样式,缺省值为ListViewLargeIcon!
,为大图标显示。
能够利用的值有ListViewLargeIcon!
(大图标显示样式),ListViewSmallIcon!
(小图标显示样式),ListViewList!
(列表显示样式)和ListViewReport(报表显示祥式)。
▲Accelerator为该控件概念快捷键。
快捷键许诺用户利用键盘选中某个项目,而不是利用鼠标。
快捷健在项目标签的第一个字母下面显示下划线表示。
ListViewItem属性ListView控件的结构比较复杂,利用该数据结构有助于简化对该控件的操作。
该数据结构只有少数的函数,大部份时候利用该控件的属性来操作,或是给该类型的数据赋值后将其插入到ListView控件中。
ListView控件最重要的数据结构ListViewItem,该结构用来保留ListView控件中每一个项目的信息。
它具有以下属性:
▲CutHighLighted布尔类型属性,当该属性为True时项目高亮显示,而且是进行剪切操作的目标。
▲Dataany类型的属性,是和项目相关联的数据值。
▲DropHighLighted布尔类型属性,该属性取值为True表示项目高亮显示,而且是拖放的目标。
▲HasFocus布尔类型属性,该属性为True时表示项目在当前具有核心。
▲ItemXInteger类型的属性,该属性的取值是项目在ListView控件中的X坐标。
▲ItemYInteger类型的属性,该属性的取值是项目在ListView控件中的Y坐标。
▲LabelString类型的属性,该属性的取值是项目文本标签中的内容。
▲OverlayPictureIndexInteger类型的属性,其取值是覆盖图像列表中图片的索引号。
▲PictureIndexInteger类型的属性,它的取值是项目图标的控件图像列表内的索引号。
▲Selected布尔类型的属性,该属性取值为True时表示该项目是选中的。
该属性是一个比较重要的属性,常经常使用来判定项目是不是选中。
▲StatePictureIndexInteger类型的属性,该属性的取值是控件状态图像列表中的索引号。
【事件】
◆BeginDragindex当用户在控件上单击鼠标并开始拖动时触发该事件◆BeginLabelEditindex当用户单击选中的标签时或挪用相应的函数开始编辑标签时触发◆BeginRightDragindex当用户在控件上单击鼠标右键并开始拖动时触发该事件◆Clickedindex当用户在控件上点击鼠标左键时触发该事件。
当双击鼠标左键时也触发该事件◆ColumnClickcolumn当以报表样式显示而且ButtonHeader属性设置为True时该事件才有可能触发。
当用户点击栏目题目时触发◆Constructor没有参数控件创建时触发该事件。
一般是在包括该控件的窗口触发窗口的Open事件之前触发该事件◆DeleteAllItems没有参数当所有的项目删除时触发该事件◆DeleteItemindex当某一个项目被删除时触发该事件◆Destructor没有参数当控件撤消时触发。
一般是在窗口的Close事件触发以后紧随着触发◆DoubleClickedindex当用户双击控件时触发该事件◆DragDropsource、index当用户拖动一个对象到控件上并松开鼠标放下该对象时触发◆DragEntersource当用户拖动其他对象到该控件中时触发◆DragLeavesource当用户拖动对象并离开该控件时触发◆DragWithinsource、index当用户在控件中拖动对象时触发◆EndLabelEditindex、newlabel当用户编辑完标签时触发◆GetFocus没有参数当控件取得核心时触发◆HelpXpos、Ypos当控件获适当前核心而且用户点击了F1键或用其他方式要获取控件的帮忙时触发◆InsertItemindex当在控件中插入新的项目时触发◆ItemActivateindex当单击或双击项目时触发。
触发机会还取决于控件OneClickActivate和TwoClickActivate属性的设置◆ItemChangedindex,focuschanged,hasfocus,selectionchange,selected,otherchange当控件中的项目改变时触发◆ItemChanging没有参数当项目中的某些内容正处于转变进程中时触发。
在该事件中能够返回1来避免改变◆Keykey,keyflag当用户点击了一个按钮时触发该事件◆LoseFocus没有参数当控件失去核心时触发◆Otherwparam,iparam当有其他系统信息而没有相应的PB映射消息时触发◆RightClickedindex当点击鼠标右键时触发该事件◆RightDoubleClickedindex当双击鼠标右键时触发该事件◆Sortindex1,index2,column当控件中的项目正在进行排序时触发
【函数】
★AddItem该函数有两种语法格式,(label,pictureindex),函数的功能是在listviewname中添加一个项目,项目的标签内容为label的内容,项目的图片索引号为pictureindex。
另一个语法为:
(item),作用是将ListViewItem类型的项目添加到listviewname中,ListViewItem类型的变量item能够详细设置其属性的取值,利用这种格式的函数能够更详细地设置要添加项目的内容。
★AddLargePicture该函数的作用是向ListView控件的大图标显示样式中添加位图、图标或光标,该函数的语法为(picturename)。
★AddSmallPicture该函数的作用是向ListView中添加小图标显示样式时的图标、光标或位图,该函数的语法为(picturename)。
★AddStatePicture该函数的作用是向ListView中添加状态图标时的图标、光标或位图。
该函数的语法是:
(picturename)。
★Arrange该函数的作用是在显示样式为大图标或小图标时按行排列图标,函数的语法是()。
★DeleteColumn函数的语法是(index),作用是删除索引号为index的列。
★DeleteColumns该函数的语法是(),作用是删除控件中的所有列,相当于对所有列都利用DeleteColumn函数。
★DeleteItem函数语法是(index),作用是删除索引号为index的项目。
★DeleteItems函数的语法是(),能够删除ListView控件中的所有项目。
★DeleteLargePicture删除索引号为index的大图标,函数的语法是:
(index)。
★DeleteLargePictures删除所有的大图标。
★DeleteSmallPicture函数语法是(index),删除索引号为index的小图标。
★D