![PowerBuilder第18讲 拖放技术_第1页](http://file4.renrendoc.com/view9/M01/2C/39/wKhkGWdTNSuAcQGZAALFY-Bj3uM456.jpg)
![PowerBuilder第18讲 拖放技术_第2页](http://file4.renrendoc.com/view9/M01/2C/39/wKhkGWdTNSuAcQGZAALFY-Bj3uM4562.jpg)
![PowerBuilder第18讲 拖放技术_第3页](http://file4.renrendoc.com/view9/M01/2C/39/wKhkGWdTNSuAcQGZAALFY-Bj3uM4563.jpg)
![PowerBuilder第18讲 拖放技术_第4页](http://file4.renrendoc.com/view9/M01/2C/39/wKhkGWdTNSuAcQGZAALFY-Bj3uM4564.jpg)
![PowerBuilder第18讲 拖放技术_第5页](http://file4.renrendoc.com/view9/M01/2C/39/wKhkGWdTNSuAcQGZAALFY-Bj3uM4565.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第18讲拖放技术结束放映第一页上一页下一页最后一页拖放是一种用来完成对象上操作的方法,它通过单击对象并在移动鼠标时按住鼠标按钮来实现,这个过程叫做拖动(Dragging)。然后把对象移动到指定的对象并释放鼠标,这个过程叫做释放(Dropping)。因此,拖放是一种通过鼠标直接操纵对象及其数据的方法。
目的要求:1.理解拖放定义2.了解拖放规则3.掌握拖放技术18.1拖放技术1.拖放拖放是一种用来完成对象上的操作的方法,它通过单击对象并在移动鼠标时按住鼠标按钮来实现。
2.拖动模式当对一个可以拖动的对象单击并在移动鼠标时按住鼠标按钮,就称为拖动模式。3.释放模式当把拖动的对象移动到指定的目标对象并释放鼠标时,就称为释放模式。4.被拖对象即为源对象,是希望在其上完成某个动作的对象。5.目标对象即为拖动目的地,是被拖对象释放到的对象。。拖放操作中要涉及两个控件:拖放的控件和放置拖放控件的控件(目标控件)。除了线、椭圆、矩形等绘图对象外,PowerBuilder中的所有控件都可以拖放。所以说:拖放可以使用户界面更加友好。拖放涉及PowerBuilder窗口上至少二个控制或对象。拖放技术最典型的用途是直接对数据进行插入和查询。结束放映第一页上一页下一页最后一页18.2拖放规则正确实施拖放应当遵循一些规则,以便保证拖放成功。在应用程序中经常使用拖放技术是非常方便的。要注意的主要规则就是拖放是用来表示在特定对象上完成的某个操作的。源对象和由目标对象完成的操作之间的关系是直观的和有意义的。在确定了实现拖放的用途之后,需要标识出哪个对象用做被拖对象,哪个对象用做目标对象对象。适合作为被拖对象DataWindow行与列代表数据的Picture控件列表框内的项目适合作为目标对象DataWindow
代表动作的Picture控件列表框或下拉列表框命令按钮需要修改其特性的任意对象说明:不让拖放操作妨碍控件的正常用法是非常重要的。例如,通常命令按钮就不适于作为被拖对象。这是因为用户单击命令按钮时通常要用某个处理过程,而不是要启动拖放对话。如果对被拖对象或目标对象使用了图片,应确保使用的图片是有意义的。这种方法为用户提供了一种更直观的界面。另外在两个对象之间进行拖动时,会有一个图标(称为拖动图标)来标明对象处于拖动状态。拖动图标应该是有意义的,这样,用户才能确切地知道正在拖动哪个对象,以及要把对象拖动到哪里。最后要说的一点是,拖放不应该成为完成为某项任务的唯一的方法。还应当提供键盘或菜单选项让用户完成同样的功能,这样能为用户提供更多的灵活性,而且不会把用户栓在特定的输入设备上。18.3拖放属性PowerBuilder中的每个可拖放控件都有两个拖放属性:DragAuto和DragIcon。这两个属性位于控件的Properties视图的Other标签页上。1.DragAuto属性DragAuto属性是一个布尔型变量。若某控件的DragAuto属性为Ture,则当单击这个控件时,它将自动处于拖动模式。若某控件的DragAuto属性为False,则当单击这个控件时,它不会自动处于拖动模式。而必须在适当的事件程序中使用Drag函数来把它置于拖动模式。在窗口画板中定义某个控件的自动拖动模式的步骤如下:(1)打开该控件的Properties视图的Other标签页。(2)选中DragAuto复选框,即将该控件的DragAuto属性设为True。
2.DragIcon属性如果使用DragIcon属性为某个控件定义了一个图标,则当该控件处于拖放模式时,这个图标将代替原控件显示在屏幕上,表示其处于一个有效的拖放区。当控件处于一个非有效区域时(如窗口的滚动条上),就会显示非放下(NO_Drop)图标。定义一个拖放图标的步骤如下:(1)打开该控件的Properties视图的Other标签页。(2)从图标列表中选择一个图标或使用Browse按钮选择一个ICO文件即可。
结束放映第一页上一页下一页最后一页18.4控件的拖放函数每个可拖放控件都包含两个与拖放有关的函数:Drag和DraggedObject(1)Drag函数这个函数用来启动、结束或取消某个拖放操作。格式如下:control.Drag(dragmode)其中,control是某个可拖放的控件,dragmode表示该函数将执行何种操作,其枚举值如下:·begin!:使某个控件进入Drag模式。·cancel!:结束Drag模式,但不会触发目标对象的DragDrop事件。·End!:结束Drag模式,并且触发目标对象的DragDrop事件。结束放映第一页上一页下一页最后一页(2)DraggedObject函数这个函数用来获取当前正在被拖动的控件。格式如下:DraggedObject()该函数返回当前正在被拖动的控件,且返回值的数据类型为DragObject,它包含了所有可拖动控件。如果当前没有任何控件处于拖动状态,该函数将显示一条运行错误。因此,一般是在目标控件的拖放事件中来使用这个函数。可以使用TypeOf函数来判断被拖动的控件属于什么类型,然后把DraggedObject返回值赋给一个相同类型的变量,之后就可以访问该控件的各种属性了。
18.4拖放事件
PowerBuilder提供了6个拖放事件如下:DragDrop事件是最重要的事件,当应用程序处于拖动模式并且当鼠标指针在目标对象上时释放鼠标时,将触发该事件。即指示一个被拖动的控件是否已经被放在了目标控件上。另外三个事件当应用程序处于拖动模式时,以及当被拖动对象移动到目标对象上时被触发。被拖对象的移动方式和位置确定触发哪个事件。DragEnter事件被拖对象的中心(也叫做“热点”)通过边沿进入目标对象。即指示一个被拖动的控件是否正进入目标控件。DragLeave事件被拖对象的中心退出目标对象。即指示一个被拖动的控件是否正离开目标控件。DragWithin事件被拖对象的中心位于目标对象内。即指示一个被拖动的控件是否正在目标控件内移动。
结束放映第一页上一页下一页最后一页BeginDrag
当单击鼠标左键并开始拖动一个控件时BeginrightDrag
当单击鼠标右键并开始拖动一个控件时前4个事件都适用于目标控件,而不适用于被拖动的控件。后2个事件用于被拖动的控件。
18.5拖放操作举例例1:某企业职工的名册利用树状浏览窗口来显示,数据库中职工的基本情况利用数据窗口来浏览,如下页图所示。当用户用鼠标拖动TreeView控件中的名字到数据窗口中时,便会在数据窗口中显示该职工的详细情况。结束放映第一页上一页下一页最后一页1.创建Application对象2.创建数据窗口对象这里使用PowerBuilder本身所带的EASDemoDBV4数据库Employee表。3.创建窗口和添加控件4.脚本说明(1)在Application的Open事件中添加脚本//ProfileEASDemoDBV4SQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString=‘DSN=EASDemoDBV4;UID=dba;PWD=sql'"Open(w_newtv)(2)声明实例变量longll_source,xt_rootitem结束放映第一页上一页下一页最后一页(3)窗口的Open事件中添加脚本connect;//定义变量longli_rowsint
li_cntstringls_nametreeviewitem
xt_tvitem//显示数据dw_1.settransobject(sqlca)li_rows=dw_1.retrieve()tv_1.setredraw(false)tv_1.deleteitem(xt_rootitem)//添加第一级项目xt_tvitem.label="职工姓名"xt_tvitem.pictureindex=1xt_tvitem.selectedpictureindex=1xt_rootitem=tv_1.insertitemfirst(0,xt_tvitem)结束放映第一页上一页下一页最后一页//添加第二级项目:职工姓名forli_cnt=1toli_rows
ls_name=dw_1.getitemstring(li_cnt,"emp_fname")
xt_tvitem.label=ls_name
xt_tvitem.pictureindex=2
xt_tvitem.selectedpictureindex=2tv_1.insertitemlast(xt_rootitem,xt_tvitem)nexttv_1.setredraw(true)(4)在tv_1的clicked事件中添加如下脚本treeviewitemtree_item//获取要拖动的项目this.getitem(handle,tree_item)如果不是第二级数据项则取消拖放iftree_item.level<>2then this.drag(cancel!)else tv_1.drag(begin!)
ll_source=handleendif 结束放映第一页上一页下一页最后一页(5)在dw_1的dragdrop事件中添加如下脚本//定义变量longli_rows,li_query_rowtreeview
treeview_dragtreeviewitemtree_itemstringls_name//获取记录数li_rows=dw_1.rowcount()//获取拖动源对象treeview_drag=draggedobject()//获取拖动的源项目treeview_drag.getitem(ll_source,tree_item)//获取职工姓名ls_name=tree_item.label//检索记录li_query_row=dw_1.find("emp_fname=‘"+ls_name+"'",1,li_rows)dw_1.scrolltorow(li_query_row)结束放映第一页上一页下一页最后一页(6)在c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代家居装饰风格与心理健康关系探讨
- 构建以服务功能为导向的绿色生态环境教育体系
- 生物医药与健康产业的投资潜力研究
- 现代化技术与医疗中心的高层建筑设计思考
- 生态城市建设中环境科学的应用研究
- Unit 5 We're family Period 3 (说课稿)-2024-2025学年外研版(三起)(2024)英语三年级上册
- 2024-2025学年高中生物 第四部分 浅尝现代生物技术说课稿 浙科版选修1
- 2024-2025学年高中物理 第四章 电磁感应 5 电磁感应现象的两类情况(1)说课稿 新人教版选修3-2
- 9古代科技 耀我中华-独领风骚的古代技术创造(说课稿)2023-2024学年统编版道德与法治五年级上册
- 26 手术台就是阵地 说课稿-2024-2025学年统编版语文三年级上册001
- 康复护理练习题库(附答案)
- 不锈钢栏杆施工工艺
- 陕西演艺集团有限公司招聘笔试题库2023
- 小型餐饮店退股协议书
- 第九讲 全面依法治国PPT习概论2023优化版教学课件
- 两淮矿区地面定向多分支水平井钻进作业技术规程
- vc约起来史上最全180个知名投资人联系方式
- 社会稳定风险评估报告风险评估参考
- GB/T 14343-2008化学纤维长丝线密度试验方法
- 制冷操作证培训教材-制冷与空调设备运行操作作业培课件
- 市级临床重点专科申报书
评论
0/150
提交评论