解决PB中不能用OpenUserObject实例化Line、Oval、Rectangle、RoundRectangle等窗口控件的问题
来源:互联网 发布:matlab 两个数组取并集 编辑:程序博客网 时间:2024/06/07 10:38
最近在网上看到网友们的阐述,有些不太具体,有些纯属胡说,下面给我一个比较实在的解决方法,这个解决方法没有调用Windows的API,而是利用PowerBuilder自身的新建Custom Visual的功能。
具体操作过程(问题的造成原因在我博客http://i.cn.yahoo.com/neonlight里有,这里不多废话了),创建好应用程序以及其中需要调用GraphicObject对象的窗口后,创建一个Custom Visual:
单击“新建(New)”,选择“PB Object”选项卡中的“Custom Visual”,随后工作区出现的操作对象类似窗口对象,把你想插入的GraphicObject对象控件,例如Rectangle插入其中,随后如果想在调用窗口中只显示这个控件时,可以把正在创建的“Custom Visual”的height和width都调整成插入控件的大小,并把GraphicObject对象控件的坐标调整为(x:0,y:0)。这样整个窗口仅仅能显示出你得这个GraphicObject对象控件,保存这个“Custom Visual”,取个文件名例如“uo_box”。
之后在你想动态生成控件的事件中写下如下代码,有任何问题请联系neonlight@live.cn:
uo_box uo_rectangle
OpenUserObject(uo_rectangle,100,100) //在父亲窗口中0,0坐标处打开uo_rectangle
//将uo_rectangle放入窗口控件数组内,当然也可以不放进去
w_main.Control[UpperBound(w_main.Control)+1] = uo_rectangle
//设置uo_rectangle的宽度、高度、坐标
uo_rectangle.width= 100
uo_rectangle.height = 100
uo_rectangle.move(400,100) //设置uo_rectangle的坐标,这里是放到400,100处
//设置这个uo_rectangle可见
uo_rectangle.visible = true
//当应用完这个控件,确定以后不再需要时,可以写如下代码销毁这个对象实例;
//否则庞大数量的动态生成控件可能会引起内存溢出错误。
if isvalid(uo_rectangle) then
CloseUserObject(uo_rectangle)
end if
到这里,大功告成,你可以运行调试了。
- 解决PB中不能用OpenUserObject实例化Line、Oval、Rectangle、RoundRectangle等窗口控件的问题
- 解决PB中不能用OpenUserObject实例化Line、Oval、Rectangle、RoundRectangle等窗口控件的问题
- [解决]Yosemite 中 Patch 破解程序不能用的问题
- 解决AndroidStudio中svn不能用的问题
- 从jpanel中调出一个JDialog,并且使得父窗口jpanel的控件不能用
- 解决不能用 ./运行的问题
- 解决输入法不能用的问题
- 解决国内gem不能用的问题
- 解决国内gem不能用的问题
- 解决国内gem不能用的问题
- 解决国内gem不能用的问题
- 【PB】谈 Create 和 OpenUserObject 创建 GraphicObject 对象的区别
- JS中addEventListener不能用的问题
- form中 button不能用的问题
- Texmaker解决快捷键不能用的问题[已解决]
- Texmaker解决快捷键不能用的问题[已解决]
- 解决MyEclipse中alt + / 快捷键不能用的问题;System.out.println快捷键;
- 解决MyEclipse中alt + / 快捷键不能用的问题;Main、Syso快捷键;
- Django数据库queryset操作
- case when 的各种用法
- android handle looper 使用误区
- 实现线程的两种方式
- VS2015 C#调试C++ dll时提示:“当前不会命中断点,因为还没有为该文档加载任何符号”解决方法From Eric Qu
- 解决PB中不能用OpenUserObject实例化Line、Oval、Rectangle、RoundRectangle等窗口控件的问题
- PCB——图像分割及检测方法
- 搞笑的Linux shell
- CI框架学习总结
- 37. Sudoku Solver leetcode python new season 2016
- web学习之路
- Access restriction: The type BASE64Encoder is not accessible due to restrict
- 系统调用实现
- ServerXMLHTTP的setTimeouts超时设置