PB 自定义对象的constructor 事件

qq135849 2012-02-08 04:12:09

新建了一个自定义对象uo_1

// 创建实例
uo_1 u_1

u_1 = create uo_1

为什么创建实例时 不会调用 uo_1 的constructor 事件呢,
自定义对象的 constructor 又是什么时候执行的呢?
...全文
359 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjfzyufan 2012-02-13
  • 打赏
  • 举报
回复
自定义对象跟窗口对象一样, 用Create不会触发constructor事件. 必须用OpenUserObject函数才会触发。
wag_enu 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 shidebao12 的回复:]
新建了一个自定义对象uo_1

// 创建实例
uo_1 u_1

u_1 = create uo_1

为什么创建实例时 不会调用 uo_1 的constructor 事件呢,
自定义对象的 constructor 又是什么时候执行的呢?
[/Quote]

你是如何确定它没被执行的?
在constructor 里加一个 messagebox() 看看运行反映。。。
noobw 2012-02-09
  • 打赏
  • 举报
回复
设置断点进去看吧,如果断点都进不去说明你的调用那边就出了问题。
在创建那边设置一个断点,constructor里面设置一个断点就可以进去了。
qq135849 2012-02-09
  • 打赏
  • 举报
回复

itrans_his = CREATE transaction

debugbreak()
messagebox('提示','111')

//实例变量itrans_his,新建事务,记录合作医疗通讯日志用 minqingsheng 20080612
string ls_ssss,ls_pp,ls_server
int li_l1,li_l2
char lc_valid

ib_canused = false
select valid
into :lc_valid
from ia_pactunitinfo
where pact_code = '17';
if sqlca.sqlcode <> 0 then
gf_msg ("查询广陵合作医疗是否禁用失败,请重试~n"+sqlca.sqlerrtext,111)
return
end if
if lc_valid = '1' then
ls_pp = ProfileString('newhis.ini','newhis','pp','')
ls_ssss = ProfileString('newhis.ini','newhis','ss','')
ls_server = ProfileString("newhis.ini","newhis","servername"," ")
li_l1 = integer(mid(ls_pp,9,2))
li_l2 = integer(mid(ls_pp,29,2))
itrans_his = CREATE Transaction
itrans_his.DBMS = "O84 ORACLE 8.0.4"
itrans_his.LogPass = f_ini_decrypt(mid(ls_ssss,72,li_l2))
itrans_his.ServerName = ls_server
itrans_his.LogId = f_ini_decrypt(mid(ls_ssss,19,li_l1))
itrans_his.AutoCommit = false
itrans_his.DBParm = "CommitOnDisconnect='No'"
Connect Using itrans_his;
if itrans_his.sqlcode <> 0 then
gf_msg("数据库连接失败,请重试~n"+itrans_his.sqlerrtext,111)
return
end if

ib_canused = true
end if



加了messagebox, 也不执行
tingmo1999 2012-02-08
  • 打赏
  • 举报
回复
促发啦
noobw 2012-02-08
  • 打赏
  • 举报
回复
constructor 一般是在创建对象或者用户自定义对象的时候就触发了。
具体你没触发的原因没有实际代码不是很清楚。
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象中的年份(四位数字)。setHours() 设置 Date 对象中的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。setMonth() 设置 Date 对象中月份 (0 ~ 11)。setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

604

社区成员

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

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