一个简单而又困难的问题,征求代码!

xxf123 2004-04-16 01:25:21
怎样才能够取得当前mdi窗口中所有子窗口的名称,并能够获取到所有的数据窗口控件,甚至已经声明的datastore的实例变量的名称?
基本思路:循环所有的找到的窗口,通过窗口controls数组循环找数据窗口控件,要考虑tab页上面的数据窗口
...全文
31 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksu19 2004-04-29
  • 打赏
  • 举报
回复
// Listing 15.31 of_askforsave for w_sheet_base // 改好看一点,我快1000分了!
/* Return: -1 未保存,100 已保存。
这里边有你要的方法,可是没有包含datastore的查找。。。如果你有了完整的答案请告诉一声。。。
*/
Long ll_max_pages, ll_max_page_controls, ll_max_controls, ll_pages, ll_controls, ll_page_controls, ll_RC
UserObject luo_tabpage
Tab lTab_Current
u_dw_base ldw_Current

ll_max_controls = UpperBound(This.control)
// Loop through all the window controls
FOR ll_controls = 1 TO ll_max_controls
CHOOSE CASE This.control[ll_controls].typeof()
CASE DataWindow!
ldw_Current = This.control[ll_controls]
ll_RC = ldw_Current.Trigger Event ue_askforsave()
If ll_RC <= 1 Then
Return ll_RC
END If
CASE Tab!
lTab_Current = This.control [ll_controls]
// Loop through all the tab pages
ll_max_pages = UpperBound(lTab_Current.Control)
FOR ll_pages = 1 TO ll_max_pages
luo_tabpage = lTab_Current.control [ll_pages]
ll_max_page_controls = UpperBound(luo_tabpage.control)
FOR ll_page_controls = 1 TO ll_max_page_controls
CHOOSE CASE luo_tabpage.control[ll_page_controls].typeof()
CASE DataWindow!
ldw_Current = luo_tabpage.control[ll_page_controls]
ll_RC = ldw_Current.Trigger Event ue_askforsave()
luo_tabpage.setfocus()
ldw_Current.setfocus()
If ll_RC <= 1 Then
Return ll_RC
END If
END CHOOSE
NEXT // ll_page_controls
NEXT // ll_pages
END CHOOSE
NEXT // ll_controls
Return 100
艳阳天11 2004-04-26
  • 打赏
  • 举报
回复
取datastore应该不太可能
zanglinfeng 2004-04-26
  • 打赏
  • 举报
回复
楼上的代码不错,
同意!
jacksu19 2004-04-21
  • 打赏
  • 举报
回复
// Listing 15.31 of_askforsave for w_sheet_base
/* Return: -1 未保存,100 已保存。
这里边有你要的方法,可是没有包含datastore的查找。。。如果你有了完整的答案请告诉一声。。。
*/
Long ll_max_pages, ll_max_page_controls, ll_max_controls, ll_pages, ll_controls, ll_page_controls, ll_RC
UserObject luo_tabpage
Tab lTab_Current
u_dw_base ldw_Current

ll_max_controls = UpperBound(This.control)
// Loop through all the window controls
FOR ll_controls = 1 TO ll_max_controls
CHOOSE CASE This.control[ll_controls].typeof()
CASE DataWindow!
ldw_Current = This.control[ll_controls]
ll_RC = ldw_Current.Trigger Event ue_askforsave()
If ll_RC <= 1 Then
Return ll_RC
END If
CASE Tab!
lTab_Current = This.control [ll_controls]
// Loop through all the tab pages
ll_max_pages = UpperBound(lTab_Current.Control)
FOR ll_pages = 1 TO ll_max_pages
luo_tabpage = lTab_Current.control [ll_pages]
ll_max_page_controls = UpperBound(luo_tabpage.control)
FOR ll_page_controls = 1 TO ll_max_page_controls
CHOOSE CASE luo_tabpage.control[ll_page_controls].typeof()
CASE DataWindow!
ldw_Current = luo_tabpage.control[ll_page_controls]
ll_RC = ldw_Current.Trigger Event ue_askforsave()
luo_tabpage.setfocus()
ldw_Current.setfocus()
If ll_RC <= 1 Then
Return ll_RC
END If
END CHOOSE
NEXT // ll_page_controls
NEXT // ll_pages
END CHOOSE
NEXT // ll_controls
Return 100
注意,此版本不包含源代码,只是一个绿色的可以随时打开的版本,开发工具为:delphi7+sqlserver2000我的PDF(Perfect Developer Frame),想要 简单,快速,健壮,因此我用的还是C/S结构,因为客户可不管你用的是什么最高新的技术!经过一两年的完善,以及几个小的项目的使用,基本上还能拿得出客户正式使用!现在拿出来征求大伙的意见,看看在哪方面还要做改进,以达到更好...如果您的意见很好,被我们实现在PDF上,那么您就可以得到一份PDF 插件版的源代码.诚心希望与您的交流:EMAIL:kingjit@163.comMSN:kingjit@163.comQQ:112876992=================================================本系统使用了绿色SQLSERVER 4.0,只供下载学习,版权归微软公司所有请下载后24小时内删除系统使用方法(纯绿色版本):1.下载并解压2.打开目录下的SERVERadmin.exe,并确保数据库已经启动3.打开CLIENTXiandi.exe即可使用,密码为空这个版本是没有完成的版本,但材料的进销存还是可以用的,请帮助测试==============================2005-10-12 jacky 第一次做开发记录以前所有的都没有做开发记录,所以很多功能都写了而无法查证,所以希望以后能坚持写下去,保留一份最完整的开发记录供后人查阅.*BUG:在单据审核后使用反审核及新增单据都会报已被审核不能修改.*NEW:单据在审核或反审核,结单或反结单时都会被记录在UserLog记录中.*NEW:新增公共部分的部门和人员表,以便在其他的功能中使用.*NEW:如果在编辑状态在GRID中移动,并且定义了Button的OnClick事件,则会自动触发 但要注意,只能在Col中增加Button并写事件或者在Col的OnButtonClick中写事件才行,在Grid的onButtonClick事件中写代码,则不会触发,要注意2005-10-14 jacky*NEW:把系统改为简繁自动切换界面的软件,界面用SILANG处理,报表用RMLOCAL.LOADDLL处理,UNIT里面用CS函数转换字符串*NEW:新增一个工具,LangTrans,来自动转换SIL语言文件,默认第一个语言是简体,第二个语言是繁体的转换2005-10-15 jacky*NEW:新增单据,会自动根据BILLTYPE及TABLE等自动生成BILLNO的生成格式信息,前缀默认为B开头*BUG:通用查询,过滤,报表窗口的DFM文件都有错误,不是OBJECT开头而是inherted*NEW:LangTrans完成*BUG:TFrmSysLog中,给尚未登出人员设置颜色时,没有检测FIELD是否存在,所以出错*NEW:在模版中创建FORM时就查询Dataset中是否有被LOOKUP的字段,如果有,则其FIELD的默认值填0,函数放在FUNCTION中*BUG:在审核时,会跳到编辑界面*NEW:把单据的录入窗口中,子表的录入新增按钮等放到GRID的右边*NEW:主界面的状态栏改为9号字,看起来好看多了*NEW:单据中的字段现在也可以是常用的固定FIELDNAME自动转换成常用的中文标签*BUG:BILL模版中,结单的状态文字,错误的打成审核了*BUG:系统经常出现错误,及不稳定现象,应该是内存泄露,正在查...2005-10-16 jacky*BUG:内存泄露的问题,稍稍解决了一些,是否经得住考验还得测试*BUG:我觉得主从表好象有问题,查询从表的时候,总是不带条件的,这样从表记录多了,该如何是好啊!所以想改一下其打开的方式*NEW:OK搞定主从表重新的方式取得数据,从表不会出现没有条件的select * from detail table*NEW:以前是在DATASET的FIELD中设置只读,则表格标题为红色,必须有值,则标题显示蓝色,现在如果GRID的COLUMN也是只读,则也显示红色.*NEW:上面说的功能,把它写在了一个函数中,SetGridTitleColor,而且只在Dataset的AfterOpen中执行一次,这样程式的性能应该会有提高.2005-10-16 jacky*BUG:主窗口的状态栏上显示文字的格子不够宽,加宽一些2005-10-18 jacky*TODO:在主窗口的功能列上,在功能项上按右键,应该有一个加入收藏夹的功能*记忆:在FIELD的DEFAULTEXPRESS中填DATE表示默认当前日期*NEW:把KU中SELECT相关的过程中,设置表格宽度的参数部分,如果为负数,则不改变默认宽度*NEW:在功能项目上按右键,即有菜单把项目加入到收藏夹中*NEW:AccountManager已经被改成双语版的了2005-10-23 jacky*TODO:新增一张单据的具体操作步骤如下: 1.从uBaseBill模版中继承建立一个FORM 2.建立好主从表,并且主从表的关键字都是固定名称:BillNO 3.把类名称改名,并保存单元,然后从自动建立列表中移除 4.在REGUNIT中注册此类 5.在MenuMoudle中建立一个菜单项,其中HINT要写上刚刚注册的类名称即可 6.ADSMain中commandtext,在FROM 后面加上主表名称 7.ADSDETAIL的commandtext中一般只要写上"select * from 子表名称",即可 8.调整各dataset中字段显示的名称,及表格中的位置等等,后面做的工作就可以很灵活了,如添加LOOKUP字段及做统计等等工作了2005-10-25 jacky*NEW:旧的万能过滤感觉不太好使,所以换成了EHLIB自带的万能过滤,不知道好不好用*BUG:没有登录的情况下是不可以点收藏夹右键的*BUG:没有登录的情况下是不可以点修改密码的2005-10-26 jacky*BUG:修改导航功能,让其能正常显示与隐藏,边界大小等,哈完美解决*NEW:导航显示时,让主界面也不出现灰色标题栏*WHY:系统参数设置FORM上没有光标出现,这种现象在其他FORM上好象偶尔也会出现==好象是解决了*NEW:在FrmMain中增加处理子窗口打开的消息,完全解决只要有子FORM打开,则功能列消失的功能*NEW:在系统管理中设置系统更新路径后,就可以在程序起动期间或是手动点工具栏按钮更新程序2005-10-29 jacky*NEW:如果进入GRID后,有写代码,按右键弹出,是不是会好一些呢?*NEW:在界面上按回车跳转的功能,遇到TDBMEMO等就不应该再跳了*NEW:在SELECT_FORM中,搜索栏位选择中,不再出现隐藏的字段了*NEW:SELECT_FORM中的MEMO字段要显示出文字*TODO:如果有把DataSet中的字段拉出来,变成文本框的录入,可以在其OnEnter和OnExit事件中选择PubEnter和PubExit事件,以达到进入编辑时,改变颜色,以醒目*NEW:如果是模版建立的窗口,则自动建立OnEnter和OnExit事件,以改变控件颜色*NEW:KU.GetParam函数有了重载的版本,即是可以有预设值的,而且也不会因为没有这个参数而出错*OK:先迪的材料进销存部分,已经完成库存数量之间的触发关系,所有单据在审核后数量才会改变2005-10-30 jacky

604

社区成员

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

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