《Delphi编程专家门诊》终于出版了。 ( 积分: 0 )

S

soul

Unregistered / Unconfirmed
GUEST, unregistred user!
由大富翁网站上很多高手协同写作的一本书,终于出版了。
详细情况可以看这里。 http://www.delphibbs.com/book/
这个页面打算作为读者专栏了,随便也为大家解决一些问题。
 
由大富翁网站上很多高手协同写作的一本书,终于出版了。
详细情况可以看这里。 http://www.delphibbs.com/book/
这个页面打算作为读者专栏了,随便也为大家解决一些问题。
 
看了,不太适用!!!
 
早知道先留名再看连接还能坐个沙发[8D]
 
最好有部分章节的预览。
 
会加一些预览的,因为文章由很多人写,难免有点参差不齐,不过其中有很多好文章。是一些高手十几年的经验总结。算我是自吹自擂啦。
 
请各位打算深造的FW赶快购买喔,呵呵,据说这本书还有个别名叫做:<DFW-DELPHI开发程序员认证高级参考书>(注:即将推出的)
 
支持,如果遇到我会买~
为什么说我灌水啊,~怎样才能认为我不是在灌水呢?难道一定要我打这么多字吗,真让人难过!打了这么多字了,我看看会不会再说我在灌水,如果一定要说我灌水那我就再多打一些,不行了,手很累~头晕晕的。难道一定让SOUL大哥的空间吃紧吗,受不了,我看SOUL大哥一定要改一下这个防灌水机制了,不然会有很多人像我这样的哦,好了不再说了,试试看会不会还再说我灌水。。。
 
支持楼主,支持楼主,支持楼主
 
放一小段先 http://www.delphibbs.com/book/preview-1.htm
 
好书,顶先
.../preview-1.htm这个预览写的好,有空了到购书中心好好看看:)
不知道何时能够上架?
 
再放一段 http://www.delphibbs.com/book/preview-2.htm
 
当初要求针对初中用户的,深的东西篇幅比例不是很大,不过质量很高。
 
http://www.delphibbs.com/book/
如果封面设计改一下,我一定会去买这本书的[:D]
我对这个封面非常有意见,本来书名叫“专家门诊”就够“医学”味儿了,
再加个血迹斑斑的“?”,让人看着很恐怖,真的!![8D]
建议封面用淡蓝色,图案用雅典娜美女,书名用Delphi程序设计富翁宝典[^][^]
 
从目录上看,总觉得和市面上的一些书就那么雷同?诸如什么百例、什么问答等,
是不是太迟出炉了?作者可都是赫赫有名。还是很寄望和期待的。
还有那节《莫迷信面向对象》想看看是写什么,目前正在学习这个。
 
再发一段,直接放在这里了。
————————————————————————————————
发现自己的特点,从因入手,迅速进步
所谓知己知彼,百战不殆,这是千古不变的道理。这个话说起来容易,做起来难。了解自己很难,身在庐山中,不知真面目。就是这样的。
来看看孔子的道路:而立,不惑,耳顺,知天命,随心所欲不逾矩。
我们也一样,不管是谁,学什么,都是这样。首先是心要静,安身立命(而立),然后是努力学习,逐渐到达深刻领悟、娴熟掌握的程度(不惑)。再然后学着学着,发觉知识学不完,自己太鄙陋,太渺小,于是变得越来越谦虚(耳顺)。随着境界的提高,自己的知识开始发生转变,升华成哲学的领悟了,这个时候不仅是学到了技术和知识,更领悟了生命的意义(知天命),此时的人不仅技术好,人情更为练达。任何事情都似乎能做好。知识的贯通达到了哲学理性的深度。于是慢慢开始做什么都随心所欲,却不会让其他人有什么非议(随心所欲不逾矩)。
上面的要求对于大多数人太高了,之所以要提,是为了要让大家明白其实“编程和做人”在深层次上的一致性。为什么本文从一开始要强调态度问题,然后要强调学习、工作和娱乐的责任感问题呢?为什么有些人什么都能干,技术也好,为人也好,但有些人技术不怎么样,却牛鼻子老高呢?心浮气躁能学好东西吗?骄傲自满能学好东西吗?而且,很多技术非常好的人,也非常善于思考,甚至能歌能舞,文笔也好。这个说明什么呢?
无论学习什么,心境必然是一致的,否则学不好。这里笔者希望告诉大家的就是,很多人学不好技术的原因和不会做人、缺乏修养的原因是一回事。那么,希望要技术迅速提高的读者就需要思考一下自己修养方面的问题了。
“我有什么修养上的缺陷,这些缺陷使得我在技术上止步不前”
智力因素是次要问题,没有真正的傻瓜,只有懒人;没有真正的不懂,只是暂时不会;没有不能解决的问题,只是没去思考;没有不能通融的矛盾,只是我们太执著。
每个人都有自己的特点,善用自己的特点能使自己的特点转变成优点,使用不当也许就成了缺点。和编程有关系的特点也许有这么些:
 
magicfish
的口才不错.
这本书哪里有买啊!广州购书中心有没有啊?
 
《莫迷信面向对象》中的片段。
----------------------------------------------------------
上面简单地说了面向对象的问题,现在总结一下,看看如何合理使用各种编程方法。根据笔者的经验,面向对象最强之处在于能利用继承和封装的特性极大的帮助我们分析问题,使得项目条理清晰,代码也易于维护。因此,使用面向对象的方法去设计整体架构是最好的选择。接着,编程会遇到的问题是数据关系和代码实现,这个时候,我们可以分别用数据结构和算法来对付,综合起来就是:总体结构—面向对象,关系—数据结构,实现—算法。其中特别要提一下数据结构。实质上很多应用都可归结到数据库设计上,许多需求使用对象非常难实现,而用数据库处理则非常容易。而算法并不一定要用面向对象的方法去考虑和分析,只要对象已经通过继承和封装把总体构造布置好了,内部实现用什么方法都可以。
 
发一个比较完整的。
——————————————————————————————————————
两个按钮触发的事件是同时运行的吗?
#### 问题
如果在一个Form上放置两个按钮,并各自写下一段循环程序,并且其中一个会改变某个全局变量,而另外一个会根据此变量值决定是否跳出循环,那么你能说出当分别按下两个按钮后程序将会如何运行吗?
别小看这个问题,很多人都完全想错了。而这个问题不清楚,会给程序中带来一些意想不到的错误。希望通过对这个问题的剖析可以让读者更清楚Delphi处理事件的机制。
#### 解决思路
我们来做个例子来深刻认识这个问题。设想有两个按钮,每个按钮的事件中各自有个循环,并在form上用两个lable分别显示两个循环变量的值,便于我们观测实际运行情况。同时,调用ProcessMessage使得其他事件可以触发。最后在第二个按钮事件的循环之前加上一个等待,只要第一个循环的输出小于2000,它就始终等待,直到大于2000才运行自己的循环。我们来看看结果是如何的。
代码略...............
#### 专家说明
好了,现在我们可以开始做试验了,先点击按钮1,在它的计数器没有达到2000之前,我们马上点击按钮2。如果两个按钮事件是同时运行的,那么按钮1的循环会运行下去,当按钮1的计数器达到2000的时候,按钮2的计数器就会跳动。
事实上呢?你按了按钮1,再按按钮2,结果什么都不动了,连程序都关不掉。别急,我们再按按钮1,看看会发生什么?你会看见按钮1计数器的计数会从1开始一直跳到5000,然后按钮2就开始工作了,有意思的是,当按钮2的事件执行完后,按钮1前面执行到一半的事件会继续执行下去,一直到结束。
为什么会这样呢?其实我们已经可以得出一个结论了,按钮上触发的事件根本就不会同时执行,一定是执行完一个才会执行另外一个。当我们用了ProcessMessage后,虽然会响应事件,但并不是同步的,而是中断第一个事件的运行跳到新的事件中去。因此这段代码虽然简单,却揭示了Delphi主线程确实是单线程的,每个事件都是在主线程中运行的。并不会另外自己生成一个线程执行事件。正因为如此,象这个例子中似乎良好的一个设想却造成了死锁。
其次要指出,例子中的ProcessMessage是必须的,否则在第一个按钮事件触发的时候,整个程序界面的所有元素将停止响应,这样在第一个按钮事件完成之前,第二个按钮事件连触发的可能性都没有。而恰恰是这样的设计,使得其他事件会中断函数的运行。
在这个例子中,按本文所描述的方法所观察到的结果,需要读者好好思考一番,才能完全明白。要提示读者的就是本例子非常清晰的显示了一个过程被中断后,等待另外一个过程的情形,而且,在这个过程中关闭程序也会不起作用,需要那些触发的事件都结束才能结束程序。
#### 专家指点
总结一下这个例子揭示的含义:如果你的一个事件内代码没有ProcessMessage之类的调用,那么根本不会接受事件,如果用了,那么这段代码就有可能会被中断而不执行下去,直到另外一个事件结束。因此,被触发的另一个事件中不要指望这段代码给予任何标志能指导其运行方式,因为这段代码不会执行结束。
#### 提示:
&amp;#61548;
如果一定要实现两个事件互有标志的情况该如何做呢?当然是必须使用线程TThread了。
 

Similar threads

D
回复
0
查看
733
DelphiTeacher的专栏
D
D
回复
0
查看
704
DelphiTeacher的专栏
D
D
回复
0
查看
675
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部