Borland的程序员在做什么?(0分)

  • 主题发起人 DoubleWood
  • 开始时间
D

DoubleWood

Unregistered / Unconfirmed
GUEST, unregistred user!
装了Delphi 7,
想到原来碰到的一个问题,就是设定Constraints从上面和左边后改变窗体大小时居然
可以移动窗体。虽然我知道怎么解决,但是我很想知道borland是不是特意做成这种效
果的呢,delphi 7里是否有所不同呢?
于是打开delphi 7的Forms.pas,看到以下的代码:
procedure TCustomForm.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo);
begin
if not (csReading in ComponentState) and FSizeChanging then
with Message.MinMaxInfo^, Constraintsdo
begin
with ptMinTrackSizedo
begin
if MinWidth > 0 then
X := MinWidth;
if MinHeight > 0 then
Y := MinHeight;
end;
with ptMaxTrackSizedo
begin
if MaxWidth > 0 then
X := MaxWidth;
if MaxHeight > 0 then
Y := MaxHeight;
end;
ConstrainedResize(ptMinTrackSize.X, ptMinTrackSize.Y, ptMaxTrackSize.X,
ptMaxTrackSize.Y);
end;
inherited;
end;
很好,和Delphi5里的一模一样,这也没什么问题。
那么问题在哪里呢?让我们来看这一句:
if not (csReading in ComponentState) and FSizeChanging then
FSizeChanging,很好,让我们找找这个东西是做什么的……
结果是:
在Delphi7中,除了这一个地方外,再没有任何地方用到这个FSizeChanging
了。在Delphi 5的代码中,我们可以看到在WMWindowPosChanging中改变了这个
值,这还说的过去,毕竟作为一个标志,有地方改变它,判断才有了意义。
然而在Delphi 7中,没有任何地方改变它,也就是说,这个FSizeChanging是
没有意义的……
等等,让我们再看一下:
if not (csReading in ComponentState) and FSizeChanging then
很好,boolean类型的初始值是false,那么这个判断永远是False,底下的代码
永远也不会执行。那么borland为什么要写那么一个过程呢?borland的程序员在
做什么呢?怎么会允许这样的垃圾代码存在呢?
我感到很伤心……这还是我心目中那个伟大的Borland吗?……
 
Borland的程序现在准在睡觉![:)]
 
等待回复
 
偶觉得个别错误是允许的,毕竟Borland的程序员不是神~~
 
传说这里的斑猪有BORLAND的人。在哪里呢??观望中。。:)))
 
现在的编译器还不能自动进行代码的因果分析,只能由人工进行。CASE工具的优势体现在哪里??
>>毕竟Borland的程序员不是神
不要以为神不会出错。
 
1。你的delphi7是花钱买的吗?
2。看看你的问题是不是确实因为Borland
3。就算Borland有点问题,也应该采取积极的态度,比Borland务实的公司不多。
 
borland怎么务实了?
borland在中国的业务部门只有销售和支持。销售部门基本就是摆设:我看没几个人会去买
borland的产品。价格太贵。还是和msdn比,msdn universial售价和delphi相仿。可是
msdn包括了微软一年的所有产品。
再说说支持,我从来没有听过任何人说过borland china pss的任何好话。pss做到这个份
上也算是厉害了。
我说句实话:如果中国具有大量的优秀技术人才,borland的市场还会缩水。因为现在的状
况不是聪明的程序员用delphi,而是很多刚刚出道的人什么都不会用才用delphi。
 
borland在中国的销售部门为什么只是摆设?是因为borland的产品价格贵吗?
msdn包括了微软一年的所有产品有什么用?一个商业公司是要“全”的开发工具还是“好”的开发工具?
delphi为什么受欢迎?就是因为它的快速开发性能(其他优点暂且不说),如果2000美元能买到
microsoft的所有产品和20000美元买delphi,我宁可选择后者,为什么?因为公司不是学校,
我们需要的是产品,用delphi可以在半年内开发出价值500万人民币的产品,在相同的成本投入下用VC行吗?
什么叫聪明的程序员?技术“聪明”?你对市场有多少敏感度??一个公司使用什么工具是程序员决定的??
 
一些以前用C的人,总是觉得高人一等,以为delphi不过象
vb,vfp,pb之流。照楼上的意思是说如果中国具有大量的优秀技术人才(用C),
borland的市场还会缩水(没人用了)。谁用Delphi,就是刚刚出道的人什么都不会。
我不想和你抬杠。
我想起了一部国产电影《神鞭》,主人公一条辫子出神入化,谁知却败在对手手枪
之下,大骂对手卑鄙之后幡然醒悟,学会了用枪。
 
To zhukewen,
1。你的delphi7是花钱买的吗?
这个很明显,我不可能有钱买得起Delphi7,公司也还只在用Delphi5。并且这个问题好象
和我所说的东西没有什么关系。
2。看看你的问题是不是确实因为Borland
我的问题我自己已经解决,我想知道的是Borland的本意。因为有些问题不能说是别人的
问题,或者只是自己不能适应而已。比如你用惯了斧头,突然改用刀,也许会觉得劈起来不
够力,然而这并不是刀或斧头的问题。
3。就算Borland有点问题,也应该采取积极的态度,比Borland务实的公司不多。
这个怎么说,我写这段文字就是觉得Borland的态度有问题。一段代码从Delphi5到
Delphi7没有改变,而相关代码的改变导致了这段代码的无意义,这恰恰说明了Borland的
态度不够严谨,因为VCL是Delphi的核心,虽然说这段代码不会引起任何的错误,但是这段
代码也是没有任何的意义,完全可以说是垃圾代码。我从delphi1一直用到delphi7,
Delphi无疑是个伟大的产品。至今我也只说我会用Delphi而不敢说我精通Delphi,然而我
不希望看到Delphi的沉沦,毕竟我现在只会用Delphi而不会其他的开发工具。
 
Delphi 是伟大的!
但是,从d4,d5,d6之间好想没有太大的进步,
不希望看到Delphi的沉沦,可能是出版本太快了
(也许是我太菜看不出来)
 
这种问题也许并不如你想象的如此简单。
其实在我自己的代码中这种情况也并不少见,
最开始的代码进行了某种判断,后来由于软件
升级带来的设计变更,这种判断也许已经是多余了,
可是我一定会删除这段判断的代码吗?不一定的,
如你分析,这里判断的是一个标志量,也许在现有的
设计方案下这个标志量已经成为一个恒定值,但是,
对于设计变更的后果是谁也不能进行准确评估的,最开始
引入的标志量自然有一定道理,虽然设计已经变更,
但作为一个设计人员,处于谨慎性的考虑,是不会立即
要求去掉这种代码的,尤其是它所判断的内容是一个标志量
的情况下,既然还保留这个标志量,那么对于标志量的判断
就是必可少的,要去除这段代码的前提是在设计中取消该标志量。
既然该标志量还存在,就应该对它进行判断,而不管它是不是
必要。
 
你说的那个问题,应该是为了和前面的版本保持兼容,如果你在d5开发的代码中用到了FSizeChanging
,那么delphi7也可以编译这些代码。这正是Borland程序员的严谨之处:)
 
我也碰到了设定Constraints从上面和左边后改变窗体大小时居然可以移动窗体这样的问题,
请问改如何解决呢?
先谢谢了
 
to darzui
和前面版本兼容,好像解释不通。因为FSizeChanging是private 成员,并非对外接口。在
前版中的用户程序不会用到这个变量。如果要兼容,也只需要定义一下就可以了,不需要使用
呀?所以这个FSizeChanging的确有很大的问题。
 
接受答案了.
 
顶部