DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 9
在线用户: 1
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 fdltc (fdltc) ★☆☆☆☆ -
普通会员
2015/4/18 22:22:41
标题:
XE8语法重要修改,惨了 浏览:3400
加入我的收藏
楼主: 父类的private成员被严格保护了。即使通过继承,只要位于不同单元,也无法访问。

以前为了访问TList泛型的FItems只需要简单继承即可,现在编译不过,导致我的许多代码都需要重新修改
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/4/18 22:38:31
1楼: 你把父类的private改成public即可,而且可以只改某一项,不影响到。private和public听上去很有道理,但实际使用,感觉它们的区别没有想象的重要。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 fdltc (fdltc) ★☆☆☆☆ -
普通会员
2015/4/18 22:42:28
2楼: 父类是系统类库,不可修改
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2015/4/18 22:47:17
3楼: 活该。
本来 私有就是私有,你们何必要改。

面向对象 都不遵守了,你们还有没有原则了?

没有原则的人,人品也不咋地。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 fdltc (fdltc) ★☆☆☆☆ -
普通会员
2015/4/18 23:02:43
4楼: 孩子,父类设计者考虑不完善而已,这你也能找到喷点。

我用delphi的时候,你还在上小学吧
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2015/4/18 23:07:17
5楼: 他设计不好,你可以不用啊。

再说了,人家 1 楼,叫你改,你还不听。活该。

你就算用了100年 DELPHI,也没有我这个用了 10 年的强。

倚老卖老,现在坏人都变老了。你就是其中之一吧。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 yxsoft (yxsoft) ★☆☆☆☆ -
盒子活跃会员
2015/4/18 23:15:14
6楼: 难道原来不是这样的?那Private是什么意思
----------------------------------------------
Great!
作者:
男 zlxym (zlxym) ★☆☆☆☆ -
盒子活跃会员
2015/4/18 23:39:49
7楼: 位于不同单元的private本来就不能访问的吧,只有在位于同一单元中才可以直接访问
----------------------------------------------
-
作者:
男 fdltc (fdltc) ★☆☆☆☆ -
普通会员
2015/4/19 0:21:53
8楼: 是泛型的类继承,不是普通的类。 

从delphi发布泛型开始,一直可以通过继承来访问私有变量。

从2009-XE7都可以编译,XE8不行了。
----------------------------------------------
-
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2015/4/19 1:19:54
9楼: 那就继续用XE7吧。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 fdltc (fdltc) ★☆☆☆☆ -
普通会员
2015/4/19 4:42:54
10楼: 已经搞定了
----------------------------------------------
-
作者:
男 hardnut (麦轲数据管家) ★☆☆☆☆ -
普通会员
2015/4/19 10:15:33
11楼: 如果说通过继承可以访问私有成员,而且是不同单元,只能说是原编译器有bug,现在修正了。delphi的的类的封装性其实是太松了。
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
作者:
男 superpage (superpage) ★☆☆☆☆ -
普通会员
2015/4/19 15:04:31
12楼: 怎么搞定的,应该有开关吧。
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2015/4/19 15:51:24
13楼: 我也想改知道通过继承可以访问和操作私有成员,而且是不同单元。我觉得是非常需要,因为没有源码,只有dcu情况下,使用helper只能改函数、过程,私有变量是无法弄的,如果能操作到私有域时,那许多事都好办了,期待有个helper功能能改类的域
----------------------------------------------
-
作者:
男 go_on (go_on) ★☆☆☆☆ -
盒子活跃会员
2015/4/19 16:03:08
14楼: 系统类库应该也可以修改的,复制一份到自己工程,然后修改,自己工程优先
----------------------------------------------
-
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2015/4/19 19:14:08
15楼: Delphi一直都是这种语法,的Private成员和函数在同一个单元可以随意访问,不同单元不能访问.
protected的成员和函数在同一个单元可以随意访问,不同单元的话派生类才可以访问.

不是语法变了
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2015/4/19 19:20:24
16楼: 根据 11 楼,给15楼补充如下。

而是BUG修复了。

好事啊。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 qingyun (qingyun) ★☆☆☆☆ -
盒子活跃会员
2015/4/19 19:49:32
17楼: private的成员和函数是可以访问的,用一个变通的语法;

有时我也用到;特别是修改第三方控件的时候;
----------------------------------------------
青云论坛
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2015/4/19 21:28:44
18楼: 网上能找到改私有变量的方法,但按偏离地址的方法来弄的
----------------------------------------------
-
作者:
男 bjzhq ( oce) ★☆☆☆☆ -
盒子活跃会员
2015/4/20 8:41:25
19楼: RTTI
----------------------------------------------
-
作者:
男 bigboy2050 (bigboy2050) ★☆☆☆☆ -
普通会员
2015/4/20 10:23:07
20楼: xe8 能不能 让 create 变成私有?

这样可以更完美地 实现单例
----------------------------------------------
kittyapp
作者:
男 cxb_zdl (韧峰) ★☆☆☆☆ -
普通会员
2015/4/25 1:49:05
21楼: 外单元想直接访问类的私有变量?这样还封装个屁,还搞什么面向对象?

凡是在外单元访问一个类的私有变量的都是有为面向对象原则的。
----------------------------------------------
-
作者:
男 mr_liyouliang (阿亮) ★☆☆☆☆ -
普通会员
2015/4/30 14:57:45
22楼: 呵呵,这个应该就是 C++ 友元机制的 Delphi 实现。
来自度娘:
友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。不过,类的访问权限确实在某些应用场合显得有些呆板,从而容忍了友元这一特别语法现象。
----------------------------------------------
-
作者:
男 f172515968 (F) ★☆☆☆☆ -
普通会员
2017/5/25 13:39:00
23楼: cxb_zdl,你好!看到你之前关于Delphi自动适应屏幕分辨率的博文。不知能否劳烦赐教一下?我将你的uMyClassHelpers代码保存为uMyClassHelpers.pas文件放进工程文件里,在工程添加uMyClassHelpers.pas;然后在需要调用的窗口引用uMyClassHelpers。然后把Tmainform = class(TForm)改为Tmainform = class(TfmForm)
运行时报错:[致命错误] uMyClassHelpers.pas(9): File not found: 'uMySysUtils.dcu'

本人比较菜,请问能否缺少文件还是。。。。。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行308.5938毫秒 RSS