在PB可视用户类中动态创建其它可视对象

wangxun0997 2012-09-07 09:10:09
很多人在创建高阶的可视类的时候都会遇到以上情况,但PB却没有提供这样的纯浄的实现方法。
下面将本人的实现方式做一描述:
1..window lw_parent --父窗口
2..u_cst_button luo_item --实例命名
3..SetRedraw(FALSE) --停刷
4..of_GetParentWindow() --获取父窗口(这中间的实现方法就不要问了,到处都是)
5..lw_parent.OpenUserObject(luo_item) --动态打开实例(发现没,这终归还是使用了窗口级的动态生成对象)
6..SetParent(Handle(luo_item),Handle(THIS)) --将刚打开的实例装入本对象容器(这就是核心了,配合OperUserObject就完成了完整动态创建了)
7..SetRedraw(TRUE) --开刷
实现这个过程其实就是一个动态创建对象和所在容器转移的过程,代码行5-6就是关键所在;
依此思路灵活应用应该可以设计出很强大的高阶可视类了,其中6行使用了以下API的申告:
PUBLIC FUNCTION Long SetParent(Long lChild, Long lParent) LIBRARY "user32.dll"
...全文
379 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lywei 2012-09-25
  • 打赏
  • 举报
回复
感谢楼主分享
路人甲cw 2012-09-25
  • 打赏
  • 举报
回复
这个在PB自带的ADVGUI里的TabControl就有应用
renolit 2012-09-07
  • 打赏
  • 举报
回复
感谢楼主分享
留着总有用处
soar_angel 2012-09-07
  • 打赏
  • 举报
回复
你说的这种方法我们在实际中用过,其实pb虽然不是java面向对象那么明显,但是我们可以利用这种思路和概念,自己搭建一个二次开发的平台,提高我们所写程序的质量,强内聚,弱耦合。
网络橘子 2012-09-07
  • 打赏
  • 举报
回复
PB的用户自定义对象 值得仔细研究
  • 打赏
  • 举报
回复
感谢分享,虽然现在对我来说还木有用
PB 编程技巧100例(CHM) Table (20)PB修改数据库表结构的技巧 李清 System (19)用PB5设计串口通讯程序 王学军 TreeView (18)在PB的TreeView控件中实现自动查询 周剑峰 Datawindow (17)PowerBuilder数据窗口编程技巧十则 蔡伟龙 System (16)如何在POWER BUILDER中使用WINSOCK控件 达伟春 OTHER (15)在PB打印中实现人民币大写 侯晓伟 MENU (14)用PB做一个通用右键菜单 田俊国 SQL (13)SQL基础 System (12)用PowerBuilder开发多媒体播放器 河北 黄万璞 控件 (11)动态创建可视控件的基本方法 鹿寒 WEB (10) 用PowerBuilder创建Internet应用 Sybase 软件(北京)有限公司 霍军 SQL (9)同时访问多个数据库 大庆石化总厂信息中心 (邮编163714) 李畅 System (8)如何在PB中使用OCX控件? 陶清网站 Datawindow (7)美化DataWindow的显示效果 程序中心PB站 Datawindow (6)当Retrieve时不清除原有Datawindow数据 程序中心PB站 Datawindow (5)当表(Table)的定义发生改变以后同步DataWindow columns 程序中心PB站 Datawindow (4)在表格(Grid)风格的DataWindow放入标题 程序中心PB站 Datawindow (3)使用Line建立漂亮的Grid DataWindow的技巧 程序中心PB站 System (2)使Sybase SQL Anywhere的启动窗口不出现在任务栏 程序中心PB站 SQL (1)使用SQL产生BCP命令快速备份/恢复你所有数据 (仅用于Sybase和MS SQL Server数据库) 程序中心PB
《PowerBuilder 9.0进阶开发篇》(实例与技巧篇)配书光盘使用说明 本光盘内容为本书所有实例的源代码。如下: 第1章 窗口、控件与界面 1.1 类Outlook工具栏界面实现 -- Outlook 1.2 制作Splash窗口 -- Splash 1.3 制作美观的状态条 -- StatusBar 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 窗口中控件显示ToolTips -- ToolTips 1.7 打造不一样的命令按钮 -- PictureButton 1.8 透明文本的实现 -- TransparentST 1.9 导航图界面的制作 -- FlowChat 1.10 制作图文并茂的菜单 -- BmpMenu 1.11 窗口内控件大小与窗口大小同步 -- Autosize 1.12 动态创建控件 -- DynamicControl 1.13 控件融合技术 -- SplitBar 第2章 数据窗口 2.1 数据窗口PDF格式文档输出 -- PDF 2.2 数据窗口组合条件查询 -- Query 2.3 数据窗口通用排序 -- UniversalSort 2.4 数据窗口通用显示列定制窗口的实现 -- ColumnVisible 2.5 数据窗口中实现增量查询 -- zlcx 2.6 数据窗口的多表更新 -- UpdateMultable 2.7 单击标题栏对数据窗口排序 -- TitleSort 2.8 动态数据窗口 -- DynamicDataWindow 2.9 复合数据窗口 -- AddTitle 2.10 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.11 数据窗口统计图类型的动态改变 -- GraphType 2.12 数据窗口统计图数值动态显示的实现 -- GraphValue 2.13 数据窗口中按钮的封装 -- DwButton 第3章 PowerScript 3.2 实现客户端程序的自动升级 -- CSUPgrade 3.3 进制转换 -- NumberConvert 3.4 注册表函数应用 -- Regedit 3.5 人民币大写转换函数 -- AmountUppder 3.6 在应用程序中关闭外部程序 -- CloseApp 3.7 在应用程序中启动控制面板项目 -- RunControl 3.8 非Tab分隔符文本文件导入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- CommandParm 3.10 取当月的最后一天函数 -- GetLastDay 3.11 限制同一程序多次运行 -- OnlyOnce 本章所使用的资源文件 -- pic 第4章 数据库与SQL 4.2 PowerBuilder + ASA8的C/S编程 -- Client-Server 4.4 动态SQL及其应用 -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 连接任意ODBC数据源 -- ODBCList 4.9 可定制参数的数据库连接 -- ServerSet 第5章 打印专题 通用打印例子 -- Print 第6章 用户对象 6.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 6.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 6.1.3 创建可视外部用户对象(状态条) -- StatusBar 6.2.2 创建通用不可视用户对象(FTP应用) -- Ftp 第7章 API 7.2.1 改变窗口的显示风格 -- ChangeWindow 7.2.2 使窗口的图片透明化 -- TransWindow 7.2.3 改变窗口的关闭形式 -- CloseStyle 7.2.4 PB中实现图形的复制与粘贴以及图像的简单处理 -- PictureBox 7.3.1 获得系统的内部进程 -- System Thread 7.3.2 获得系统基本信息 -- SystemInformation 7.4.1 检测物理网络的连通情况 -- Mping 7.4.2 关闭、重启、注销计算机 -- ExitWindow 7.5.1 使用Visual C++开发动态链接库 -- DllForPb9 7.5.2 使用Delphi开发动态链接库 -- SetScreen 7.5.3 使用Visual Basic开发ActiveX动态链接库 -- CPUInfo 第8章 pipeline 数据管道 -- pipeline 第9章 DDE、OLE、COM使用技术 9.1.3 DDE客户端实现步骤 -- DDE 9.2.5 不可视的OLE对象 -- pbtowordandexcel 9.2.6 ActiveX控件 -- Media 9.2.7 使用外部OLE控件处理数据库中的二进制数据 -- DBOLE 9.2.8 OLE精彩应用——开发具有XP风格的菜单 -- XPMenu 9.3.3 PowerBuilder中的COM组件实现 -- pb9com 第10章 编译发行 编译 -- TestInstall 第11章 Jaguar 包含开发Jaguar组件和调用Jaguar组件的两个例子的源程序 第12章 PBNI PBNI应用技术 -- PBNI 本光盘所收集内容的著作权为作者所有;作者授权清华大学出版社独家出版该光盘;清华大学出版社享有该光盘的专有出版权。 注意事项: 1. 第4章部分例程需要配置名为pbbook的ODBC数据源; 第5章例程需要配置名为PrintDB的ODBC数据源。 2. 某些例程可能会因环境原因而无法运行,但源代码可供参考。 3. 部分例程所在目录有说明文件,请注意阅读。 4. 如有疑问,欢迎到以下网站探讨: PB编程俱乐部 http://www.kejx.com 或 http://kjx.126.com 摆渡人工作室 http://www.pbsite.com 技术支持: 电 话:010-62791976-220或010-62791977-220(编辑部) 传 真:010-62788903 E-mail:kjx@163.com(柯建勋) ztao@pbsite.com(张涛) oyzx_sp@263.net(编辑) 通信地址:北京市清华大学校内金地公司 邮 编:100084
第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp
《PowerBuilder 8.0基础篇》各章例程及运行注意事项: 第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp 第6章 API 6.2.1 改变窗口的显示风格 -- ChangeWindow 6.2.2 使窗口的图片透明化 -- TransWindow 6.2.3 改变窗口的关闭形式 -- CloseStyle 6.2.4 PB中实现图形的复制与粘贴以及图像的简单处理 -- PictureBox 6.3.1 获得系统的内部进程 -- System Thread 6.3.2 获得系统基本信息 -- SystemInformation 6.4.1 检测物理网络的连通情况 -- Mping 6.4.2 关闭,重启,注销计算机 -- ExitWindow 6.4.3 通过标准字体对话框来设置字体 -- SetFont 第7章 pipeline 数据管道 -- pipeline 第8章 组件 将数据窗口中的数据导出到Word中 -- pbtoword 第10章 Web PowerBuilder与WEB开发 -- web 第11章 Jaguar Jaguar CTS组件编程 -- Jagar Test 注意事项: 1. 第4章部分例程需要配置名为pbbook的ODBC数据源。 2. 某些例程可能会因环境原因而无法运行,但源代码可供参考。

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧