前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PBKILLER的搜索

哪位好心的大侠知道在PB中怎么使用【comctl32.dll】中的日历控件【sysdatetimepick32】 - CSDN论坛 - CSDN.NET --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > PowerBuilder > 控件与界面 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 haoshare 哪位好心的大侠知道在PB中怎么使用【comctl32.dll】中的日历控件【sysdatetimepick32】 [问题点数:100分,结帖人CSDN] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 haoshare haoshare 等级: 结帖率:100% 楼主 发表于: 2005-11-17 13:30:16 我刚用PB不久,刚刚用PBKILLER反编译别人的程序来学习,但是我使用反编译出来的代码去不能显示【comctl32.dll】中的日历控件【sysdatetimepick32】 ,而我运行他的安装程序日历控件却是可以用的! 弄了好久都没有弄出来,不知道是反编译的出来的代码有问题还是别的原因?后来我参考了一下反编译出来的代码,自己做了一个用户对象【uo_sysdatetimepick32】,不过把它加到窗口中,也没有看到这个日历控件! 我把我反编译的代码和我自己做的【uo_sysdatetimepick32】的代码都列在下面! 哪位好心的大侠可以帮帮我,非常感谢! 我反编译出来的代码如下: ==================== forward global type uo_comctl_datetime from userobject end type end forward global type uo_comctl_datetime from userobject integer width = 508 integer height = 99 long backcolor = 0 string classname = "sysdatetimepick32" string libraryname = "comctl32.dll" long style = 1174405120 end type global uo_comctl_datetime uo_comctl_datetime type variables private nvo_comctl_datetime iuodatetime end variables forward prototypes public subroutine of_getobject (ref nvo_comctl_datetime auodatetimepicker) public function datetime of_getdate () public subroutine of_setdate (date ld_rq) public subroutine of_setdate (datetime ldt_rq) public subroutine of_setdate (string ls_rq) public subroutine of_getdate (ref string ls_date) public subroutine of_getdate (ref datetime ldt_rq) public subroutine of_getdate (ref date ld_rq) public subroutine of_getdate (ref time lt_rq) public subroutine of_setdate (time lt_time) end prototypes public subroutine of_getobject (ref nvo_comctl_datetime auodatetimepicker);auodatetimepicker = iuodatetime return end subroutine public function datetime of_getdate ();nvo_comctl_datetime lnvodatetime datetime ldtselected string lsselecteddate if isvalid(this) then of_getobject(lnvodatetime) ldtselected = lnvodatetime.of_getdatetime() end if return ldtselected end function public subroutine of_setdate (date ld_rq);datetime ldt_rq ldt_rq = datetime(ld_rq) iuodatetime.of_setdatetime(ldt_rq) end subroutine public subroutine of_setdate (datetime ldt_rq);iuodatetime.of_setdatetime(ldt_rq) end subroutine public subroutine of_setdate (string ls_rq);date ld_rq datetime ldt_rq if len(ls_rq) = 8 then ls_rq = left(ls_rq,4) + "-" + mid(ls_rq,5,2) + "-" + right(ls_rq,2) end if ld_rq = date(ls_rq) ldt_rq = datetime(ld_rq) iuodatetime.of_setdatetime(ldt_rq) end subroutine public subroutine of_getdate (ref string ls_date);nvo_comctl_datetime lnvodatetime datetime ldtselected date ldselected if isvalid(this) then of_getobject(lnvodatetime) ldtselected = lnvodatetime.of_getdatetime() ldselected = date(ldtselected) ls_date = string(year(ldselected)) + string(month(ldselected),"00") + string(day(ldselected),"00") end if end subroutine public subroutine of_getdate (ref datetime ldt_rq);nvo_comctl_datetime lnvodatetime if isvalid(this) then of_getobject(lnvodatetime) ldt_rq = lnvodatetime.of_getdatetime() end if end subroutine public subroutine of_getdate (ref date ld_rq);nvo_comctl_datetime lnvodatetime if isvalid(this) then of_getobject(lnvodatetime) ld_rq = date(lnvodatetime.of_getdatetime()) end if end subroutine public subroutine of_getdate (ref time lt_rq);nvo_comctl_datetime lnvodatetime if isvalid(this) then of_getobject(lnvodatetime) lt_rq = time(lnvodatetime.of_getdatetime()) end if end subroutine public subroutine of_setdate (time lt_time);datetime ldt_date ldt_date = datetime(date("1900-01-01"),lt_time) iuodatetime.of_setdatetime(ldt_date) end subroutine event constructor;iuodatetime = create nvo_comctl_datetime iuodatetime.of_sethandle(handle(this)) return 0 end event on uo_comctl_datetime.create end on on uo_comctl_datetime.destroy end on event destructor;destroy(iuodatetime) end event 【uo_sysdatetimepick32】 ==================== forward global type uo_sysdatetimepick32 from userobject end type end forward global type uo_sysdatetimepick32 from userobject integer width = 508 integer height = 99 boolean border = true userobjects objecttype = externalvisual! long backcolor = 0 string classname = "sysdatetimepick32" string libraryname = "J:\shareDll\comctl32.dll" long style = 1174405120 end type global uo_sysdatetimepick32 uo_sysdatetimepick32 on uo_sysdatetimepick32.create end on on uo_sysdatetimepick32.destroy end on 分享到: 更多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:19 haoshare haoshare 等级: 结帖率:100% #1 得分:0 回复于: 2005-11-17 13:49:20 补充一点: 因为这里没有文件上传的功能,所以我只好把上传的文件放在另外一个地方! 我上传的文件是我做试验的相关文件,主要有【comctl32.dll】以及【test.pbl】中的【uo_sysdatetimepick32】【w_test】这两个对象! 网址是:【http://www.hur.cn/bbs/dispbbs.asp?boardid=85&id=47694】 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 j9dai j9dai 等级: 结帖率:100% 3 #2 得分:0 回复于: 2005-11-17 15:24:41 private nvo_comctl_datetime iuodatetime 缺少最重要的东东nvo_comctl_datetime 里面包面创建日历控件(其实也是一个Window)的代码 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lzheng2001 lzheng2001 等级: 结帖率:100% 177 #3 得分:0 回复于: 2005-11-17 16:40:26 一共有两个userobject,要结合使用, 一个是uo_comctl_datetime用于显示;另一个是nvo_comctl_datetime是非可视的对象,封装了对uo_comctl_datetime的所有操作(如,函数) 以下发一个pb8导出的语法,你把它导入使用就是了. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lzheng2001 lzheng2001 等级: 结帖率:100% 177 #4 得分:0 回复于: 2005-11-17 16:46:48 太长了,不好发,要的留下EMAIL吧 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #5 得分:0 回复于: 2005-11-17 17:24:43 谢谢你们,我真是太幸运了,第一次提问就遇到你们两位热心的大侠! 我发现反编译出来的代码是有问题的,我用的反编译工具是PBKILLER.exe v1.5.07,但是这个软件还是有些不完善的地方,有的代码错误,数据窗口对象反编译不出来,如果你们谁知道有什么好的工具的话,记得告诉我一声,谢谢各位大侠了! 顺便问一下我发现反编译出来的【uo_comctl_datetime】的代码是有问题的,那就是没发现有创建实例的语句,我将反编译出来的代码加到我的程序里面,运行到调用它的时候老报错,说是空对象: 就拿我上面贴出来的关于【uo_comctl_datetime】的那段代码来说吧,它的【constructor】事件的第一句代码【iuodatetime = create nvo_comctl_datetime 】是我加进去的,本来没有的: event constructor;iuodatetime = create nvo_comctl_datetime iuodatetime.of_sethandle(handle(this)) return 0 ==================== 我对PB不是很熟,我不知道有了下面这样的语句之后,是否还需要在后面加上【iuodatetime = create nvo_comctl_datetime】这句代码来创建【iuodatetime】这个对象? type variables private nvo_comctl_datetime iuodatetime end variables end event ==================== 我看了一下所有的对象都是在一个叫【uo.pbd】中的,除了【uo_comctl_datetime、nvo_comctl_datetime】这对对象之外还有【uo_comctl_monthcal、nvo_comctl_monthcal】这对对象,我想他们也应该有相似的问题,如果您那有的话一起发给我吧,有些东西也许对您这样的大侠来说是举手之劳(就只要花您几分钟),但是对我这样的菜鸟来说可能是几天几十天也弄不出来的! 另外我自己想办法解决了从【PBD 】中反编译出数据窗口对象的问题,各位帮助过我的大侠如果有需要,我可以马上把我知道的告诉您! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #6 得分:0 回复于: 2005-11-17 17:30:00 哦,对了,我的邮箱是【haoshare@163.com】 上面我所说的不是【uo.pbd】,而是【ui.pbd】,敲错了一个字! 我反编译的【ui.pbd】好像里面全部都是一些用户界面的方面的东西,如果哪位大侠有最好可以顺便发给我学习学习,象我这样的菜鸟要一个个的去解决问题真的很麻烦的,谢谢了! 【ui.pbd】中有如下用户对象: nvo_comctl_datetime nvo_comctl_monthcal nvo_diskinfo nvo_month_dw nvo_qq_group nvo_qq_node nvo_systray2 nvo_tooltips nvo_transparent u_analog_clock u_lbs_stsplitbar u_tv u_vst_link ufc_u_splitbar uo_angle uo_color_selection uo_comctl_date_fordw uo_comctl_datetime uo_comctl_datetime_fordw uo_comctl_monthcal uo_coolbutton uo_dwsort uo_dwtoword uo_flat_btn uo_flat_picbtn uo_flat_textbox uo_gradientfillbutton uo_groupbox uo_imflatbutton uo_navigate_treeview uo_pfc_splitbar uo_pfc_statusbar uo_qq_button uo_qq_header uo_qq_panel uo_qq_pb uo_radiobutton uo_statictext uo_systray2 uo_toolbar uo_toolbar_button uo_toolbar_menuseperator uo_toolbar_space uo_tooltip uo_xp_button uo_xp_editmask uo_xp_textbox uo_xpbutton uo_xpbutton1 uo_xpradiobutton 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 hygougou hygougou 等级: 结帖率:100% 44 #7 得分:0 回复于: 2005-11-17 17:33:29 呵呵,这个控件网上应该很多, 其它工具上的例子也很多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #8 得分:0 回复于: 2005-11-17 17:35:23 问题是我要通过看人家编写的程序来学习PB,所以我需要这些东西才能完整的调试运行程序! 比它好的日历控件网上却是是有很多! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 hygougou hygougou 等级: 结帖率:100% 44 #9 得分:0 回复于: 2005-11-17 18:24:24 我就说的这个控件源代码网上很多,何必反编译呢?:) 应用该控件在其它开发工具上的例子也很多,呵呵~~ 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #10 得分:0 回复于: 2005-11-17 19:55:01 TO hygougou(狗狗) 兄 呵呵,看得出来你是这里的资深网友,在这混一定很久了,很高兴认识你,以后还有很多问题向你请教! 可能我说得不是很明白,我的意思是之所以想知道怎么使用这些控件不纯粹是为了学习怎么做界面的东西,而是我要学习的程序里面用到了这些控件,不把它们弄出来,我没法正常调试运行我要学习的别人的程序,这样不便于我通过学习别人的程序更快的提高自己的PB水平! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 balloonman2002 balloonman2002 等级: 结帖率:97.37% 833 #11 得分:0 回复于: 2005-11-17 23:00:44 uo_comctl_datetime、nvo_comctl_datetime这些UO在下面的例子里有: http://www.pdriver.com/display.asp?key_id=1494 http://www.pdriver.com/display.asp?key_id=1428 http://www.pdriver.com/display.asp?key_id=1419 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #12 得分:0 回复于: 2005-11-18 01:53:18 现在我最急需解决的问题是程序中用到了我反编译出来的按钮控件(pfc_picture_command_button、pfc_picture_command_button_cancel、pfc_picture_command_button_ok、pfc_tooltip)的代码来显示界面,也是遇到与我前面相似的问题【Null object reference at line 4 in constructor event of object pfc_picture_command_button】,不知道该怎么解决这个问题。 我把我遇到问题所涉及到的东西都放在我上传的文件中,大家可以看看,网址是【http://www.hur.cn/bbs/dispbbs.asp?boardid=85&id=47694】。 我想应该这几个都是通用的组件,不知道哪位大侠可以发一份给我! 这些组件在我反编译的程序中都是在【print.pbl】中的,我看了一下可以导出如下对象: dw_savetoexcel.srd dw_savetoexcel_columns.srd f_columname.srf f_datawindow_to_word.srf f_getvalue.srf f_pbtoexcel.srf gf_cm_center_window.srf gf_cm_dw_printpreview.srf gf_savetoexcel.srf m_cm_dw_print_preview.srm pfc_picture_command_button.sru pfc_picture_command_button_cancel.sru pfc_picture_command_button_ok.sru pfc_picture_status_button.sru pfc_response.srw pfc_tooltip.sru u_selection_list.sru w_cm_dw_print_preview_popup.srw w_cm_print_setup.srw wwd_f_centralizewindow.srf 其中以下几个对我来说最关键: pfc_picture_command_button.sru pfc_picture_command_button_cancel.sru pfc_picture_command_button_ok.sru pfc_picture_status_button.sru pfc_response.srw pfc_tooltip.sru u_selection_list.sru w_cm_dw_print_preview_popup.srw w_cm_print_setup.srw wwd_f_centralizewindow.srf 如果您那有的话一起发给我吧,有些东西也许对您这样的大侠来说是举手之劳(就只要花您几分钟),但是对我这样的菜鸟来说可能是几天几十天也弄不出来的! 我的邮箱是【haoshare@163.com】,非常感谢! 我刚刚注册,对于这边怎么送分还不是很清楚,我知道对于你们来说不一定会把分看在眼里,但是帮助过我的人我一定要送分表示感谢! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 sunday_hl sunday_hl 等级: 结帖率:100% #13 得分:0 回复于: 2005-11-19 20:37:35 sunday_hl@mail.csdn.net 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 phenix16 phenix16 等级: 结帖率:96.67% #14 得分:0 回复于: 2005-11-27 20:47:25 新建个external visual(别告诉我你不知道怎么建),在类的名字填上comctl.dll,在类名填上sysdatetimepick32,ok可以使用了。 对我有用[1] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 haoshare haoshare 等级: 结帖率:100% #15 得分:0 回复于: 2005-12-01 02:33:36 谢谢大家,刚从外地出差回来,没想到工作这么辛苦的,也没想到这么多天没上网,一上来还有这么多热心的朋友给予我这么无私的帮助,明天我应该有时间根据你们告诉我的方法好好试试,谢谢你们! 另外请知道怎么给分的朋友告诉我一声怎么给帮助过我的朋友加分,谢谢! 呵呵,别笑话我,我这是第一次到这里来问问题,发现这里挺好的,人气不错,网友也非常热心! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 Supernpc Supernpc 等级: 结帖率:100% #16 得分:0 回复于: 2005-12-01 14:41:56 自己写一个日历控件就好了.大小格式自己控制,多好.. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 whchen whchen 等级: 结帖率:100% #17 得分:0 回复于: 2005-12-02 10:28:26 楼主碰到好人了 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiongxiao xiongxiao 等级: 结帖率:100% #18 得分:0 回复于: 2005-12-08 10:26:36 PB10开始PB中自带日历控件 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 yeqiufeng yeqiufeng 等级: 结帖率:100% #19 得分:0 回复于: 2005-12-08 12:57:15 支持一下 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]