|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 我又迷糊了!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2335
人关注过本帖
标题:
我又迷糊了!
只看楼主
加入收藏
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
21
楼
收藏
得分:0
回复 20楼 不懂才问
不要在Destroy中做启动别的窗体的动作,把启动代码放到最前面READ EVENTS之后,另外再开一个窗体(即前面的窗体是另外一个程序执行完毕继续执行另外一个),就是15楼所说另一种解决办法。代码要放在逻辑上正确的位置,不要随手,固然可以达到目的,但将来你自己或别人维护时,就很难根据逻辑去定位你的代码,也难维护。
[此贴子已经被作者于2015-12-8 13:50编辑过]
授人以渔,不授人以鱼。
2015-12-08 13:39
举报帖子
使用道具
赠送鲜花
mywisdom88
等 级:
版主
威 望:
191
帖 子:3147
专家分:8408
注 册:2015-3-25
第
22
楼
收藏
得分:0
*MyForm.PRG
*红字哪里有什么作用。。。
DEFINE CLASS MyForm AS Form
PROCEDURE Arrange
FOR EACH obj IN This.Controls FOXOBJECT
IF (VARTYPE(obj.CanArrange) == "L") .AND. obj.CanArrange
obj.Arrange
ENDIF
NEXT
ENDPROC
PROCEDURE Activate
This.Arrange
ENDPROC
PROCEDURE Resize
This.Arrange
ENDPROC
PROCEDURE Destroy
CLEAR EVENTS
ENDPROC
ENDDEFINE
2015-12-08 13:56
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
23
楼
收藏
得分:0
回复 22楼 mywisdom88
检索窗体内部的所有控件,看是否包含Arrange方法,有的话就执行它,这用于本窗体的外观被改变时批量调整所有控件的布局,后面不用再费神了,那是自动的。
授人以渔,不授人以鱼。
2015-12-08 13:59
举报帖子
使用道具
赠送鲜花
不懂才问
来 自:大草原
等 级:
贵宾
威 望:
29
帖 子:1503
专家分:6593
注 册:2010-7-5
第
24
楼
收藏
得分:0
回复 23楼 TonyDeng
我也刚想问同样的问题 看到一个VFP的帮助文档 也没看太懂 看到你的解释 我懂了一点点 以后在程序中多用几次 可能明白更多些
报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-08 14:03
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
25
楼
收藏
得分:0
你运行时拖拉一下我现在这个程序显示的窗口尺寸,会看到效果——后面写的类不用主动执行Arrange了,你只要把每个容器的Arrange写好,它会在需要的时候自己触发。这就是面向对象继承的有点。
授人以渔,不授人以鱼。
2015-12-08 14:07
举报帖子
使用道具
赠送鲜花
mywisdom88
等 级:
版主
威 望:
191
帖 子:3147
专家分:8408
注 册:2015-3-25
第
26
楼
收藏
得分:0
PROCEDURE Arrange
WITH This.cmdLogin
.Top = (This.Height - .Height) / 2
.Left = (This.Width - .Width) / 2
ENDWITH
ENDPROC
你提到重定义问题,上面这里是不是重定义了Arrange,怎么还能实现自动调整窗口大小
*这里的Destroy,是真的重新定义了,不会发出CLEAR EVENTS
DEFINE CLASS C_Login AS MyForm
Caption = "登陆"
ShowWindow = 1
WindowType = 1
Width = 300
Height = 200
AutoCenter = .T.
PROCEDURE Destroy
* 重写Destroy否决父类中默認CLEAR EVENTS的动作
ENDPROC
ENDDEFINE
2015-12-08 14:16
举报帖子
使用道具
赠送鲜花
tlliqi
等 级:
贵宾
威 望:
204
帖 子:15453
专家分:65956
注 册:2006-4-27
第
27
楼
收藏
得分:0
以下是引用
TonyDeng
在2015-12-8 14:07:49的发言:
你运行时拖拉一下我现在这个程序显示的窗口尺寸,会看到效果——后面写的类不用主动执行Arrange了,你只要把每个容器的Arrange写好,它会在需要的时候自己触发。这就是面向对象继承的有点。
办法好
2015-12-08 14:16
举报帖子
使用道具
赠送鲜花
mywisdom88
等 级:
版主
威 望:
191
帖 子:3147
专家分:8408
注 册:2015-3-25
第
28
楼
收藏
得分:0
好像,T版的这里列子,精髓就在这个Arrange....
慢慢研究,看看这个Arrange变化,,
2015-12-08 14:21
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
29
楼
收藏
得分:0
你看我MyForm父类中是在什么事件触发下主动调用本类的Arrange方法?是在这个父类的Arrange方法中,再依次调用本类实例对象中所有容器的Arrange方法。
授人以渔,不授人以鱼。
2015-12-08 14:35
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
30
楼
收藏
得分:0
我不用挂靠,是因为动态计算重新布局比挂靠有更多的灵活性,它可以依据窗体尺寸的实际大小变换布局,而不是死板的挂靠。vfp9的新功能有挂靠,但未必比最原始的手段管用,何况,这种实现方式不存在兼容性问题,在vfp6中也可以用,挂靠就不可以了。
授人以渔,不授人以鱼。
2015-12-08 14:40
举报帖子
使用道具
赠送鲜花
31
3/4页
1
2
3
4
快速回复:
我又迷糊了!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017485 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved