2006-12-22
2006-12-16
母亲的救命钱竟买花送给李愚蠢
昨天,我匆匆忙忙来到了小小的家。至今,我无法将那价值320元的精美包装的大束鲜花和瘦小单薄的小小,以及小小她那患有肝腹水、无钱上医院治疗仅靠中药维持而卧床的母亲,还有小小父亲,一个靠在工地背沙石给小小赚学费,给小小的母亲挣药费的父亲联系在一起。那妖艳的百合,那俗气的鹤头兰,竟像鬼魅的妖魔,不断在我眼前张牙舞爪。
我是第三次来到小小的家。她的母亲见我来,无力地笑了笑。阴暗的房间弥漫着浓重的中药味道。小小的母亲说,小小今天一定会回来的,因为,家里的中药已经没有了。我心中还是有几分忐忑,我被小小视为不速之客,但我必须要解开心中的疑团。
国庆节前夕,李宇春在成都举行演唱会。几位同事虽然谈不上是所谓的粉丝,但都想去凑凑热闹。到了演唱现场,一看门票最低价格180元,我们都觉得有些不值,这时我想起我的一位报社的记者朋友,他一定在现场采访,我打电话给他,看他能否带我们混进去。电话打过去,没有接听,一定是现场太嘈杂。这时候,小小出现了。
这个女孩一下子引起我的注意,因为她怀里的那束鲜花,都将半个身子遮挡住,我的女同事都说,至今,她都没有收到男友这么漂亮的花。可是,秋凉的夜晚,女孩还穿着一双凉鞋。小小似乎也注意到我一直在打量着她,我主动对她笑笑,指着花问是不是送给李宇春的?女孩点头说,没有票。这时候,我的电话通了,记者朋友果然在现场,一会,他出来了,引我们到侧门,我回头对小小说,愿意我我们一块儿进去么?小小答应了。
但是,最终小小还是没有亲自把花送给李宇春。因为现场气氛太热烈,歌迷太疯狂,小小怀中的花几经蹂躏,最后践踏在人们脚下。
驱车回家的路上,在潮水般的人流中,我一眼发现了孤单的小小。把车停在她的身边,我问,家离这儿远么?需要送送你么?小小似乎有些迟疑,但看车上还有两位我的女同事,略考虑一下就答应了。上了车才知道,小小的家距离演出现场车程都有20多分钟,这么晚了,一个女孩步行,不害怕啊?小小说她没钱乘车。“那你送李宇春的那束鲜花得值不少钱吧?”同事不解。小小不说话,问她名字也没有回答。
凭着我从事新闻工作的敏感,我想这里一定有故事。第二天再次来到小小的家,从小小母亲那里,知道了有关这个家和小小的一些情况。小小母亲说,小小在读中专,一周要回来几次,主要是把中药拿回来,并且熬好,小小的父亲在城里做活路,也耽搁不起。可是这周小小一次都没有回家,中药都熬了好几遍,药味都没有了。母亲说,她每周光喝药就要花70多块钱,这些钱全是小小的父亲在工地上背沙石背出来的,每个月,小小的父亲就把工资交给小小,小小留一些生活费后,钱都买药了。可是,这比在医院强多了,医院光输一瓶液,就要上百,医不起。
小小终于回家了。看见我有几分吃惊。小小拿回来的中药仅够两天的,母亲问原因,小小说她没时间上工地找父亲。我分明看见小小眼里慌乱的眼神,但也明显看出小小对我的反感。但我还是跟着小小进了厨房。我掏出100元钱对小小说,把这周的药抓齐了,你妈的病拖不起。说完我扭头就走。
今天再次来到小小的家,我还给小小的母亲带了盒单位发的月饼。小小回来了,一切收拾停当,我想解开我心中的疑团的时候到了。
果不出我所料,小小送给李宇春的那束鲜花就是用的父亲交给她给母亲买药的钱。小小很喜欢李宇春,是春春的玉米,和她同班、同寝室有很多女孩子都十分喜欢李宇春。这次李宇春成都演唱会,大家都想到现场亲眼目睹心中的偶像。看着同学们都准备了这么多礼物,小小也动心了。
同学们还包车到机场去接李宇春,可是小小已经身无分文。父亲交给她的母亲的药费和她的一周的生活费350元,都用来买花了。我问小小,后悔么?小小回答,事后还是有些后悔,可是,当时心里还是很激动,很愉快。
“那你母亲的药怎么办?”
“我把我的生活费省下来,药也可以多熬几遍。”
看着让人顿生怜悯的小小,还能说什么。你父亲背一方沙才挣24元,一方沙子要装24个水泥袋;你母亲肝腹水已经很严重,全靠中药维持;你学业这么紧张,每天伙食费仅仅5元钱......小小,你喜欢李宇春没有错,但在我们的生命中,有很多人比李宇春,有很多事,比给歌星送花还重要。
我要来小小母亲的药方,我到药铺买来小小母亲一个月用量的中药。我想此刻这中药特有的药味,要比百合花的芳香强百倍。
PS:
首次在MOP看到这个贴子,本来就极度恶心超女的我更加气愤难耐,小小年纪就被所谓的追星毒害成这样,我真想问:我们的社会是怎么了?我们的教育是怎么了?都是爹妈生的,都是有血有肉,只不过人家有后门走,能通过关系得冠军,有化妆师,有设计师帮他们那原本比普通人还普通的人脸弄得星光闪闪,站在舞台上,随便鬼叫几声,就有这么一大堆崇拜,模防,以致类似小小这样的例子。这是人民文化的悲唉,这是社会的悲唉,就好像整个社会都巅倒了,男,女观念形象巅倒了,丑,美形象也巅倒了,当然这不是第一个,也绝对不是最后一个!!!一些人活着永远也不知道什么叫尊严,什么叫自己!
2006-12-09
美国大兵的22条作战条例
原本当作笑话看,不过仔细阅之,不难发现这些美国大兵总结的作战条例确实深含生活的哲理:
第一条,你不是超人;
第二条,如果一个愚蠢的方法有效那它就不是愚蠢的方法;
第三条,不要太显眼因为那样会引人攻击(这就是航母被称为“BoB!!!磁铁”的原因)
第四条,别和比你勇敢的家伙待在一个掩体
第五条,别忘了你手上的武器是由出价最低的承包商制造的;
第六条,如果你的攻击很顺利那你一定是中了圈套:
第七条,没有任何计划能在遇敌后继续执行;
第八 条,所有5秒的手榴弹引线,都会在3秒内烧完;
第九条,装成无关紧要的人,因为敌人的弹药可能不够了(所以它会只打重要的人)
第十条,那支你不加注意的敌军部队其实是攻击的主力;
第十一条,重要的事总是简单的;
第十二条,简单的事总是难做的;
第十三条,好走的路总会被布上雷;
第十四条,如果你除了敌人什么都缺那你一定在交战中;
第十五条,飞来的子弹有优先通过权(挡它的道你就倒大霉啦)
第十六条,如果敌人在你的射程内,别忘了你也在他的射程内:
第十七条,要一起用才能生效的装备通常不会一起运来
第十八 条,无线电总会在你急需大力支援时断掉
篱十九条,你做的任何事都有可能让你挨枪子儿—一什么都不做也一样
第二十条,惟一比敌方炮火还精确的是友军的炮火:
第二十一条,专业士兵的行为是可以预测的但世上却充满了业余玩家;
第二十二条,当两军都觉得自己快输时那他们可能都是对的。
2006-12-07
数据转换是个问题
一直被数据转换效率问题哽噎着,今天突发其想:用Variant替代Format进行类型转换。
写了个简单的程序测试了下,在我的机子上指定类型的Format转换比用Variant转换效率高出80%。
看了下Variants.pas,里面基本上通篇都是在进行TVarData类型判断,然后再是类型数据的转换,也难怪会比直接指定类项转换慢的多。
另外还测试了下用VC写了个DLL调用VC的sprintf进行数据类型转换,结果比Delphi直接调用Format还慢。其和API wsprintf效率差不多。
今天研究结果:数据转换是个问题。。。在想更好的方法!
2006-10-21
2006-10-20
2006-10-19
贴两张Google的漫画

B: My son wants to be a doctor.
C: My son wants to sell his website to google.

2: 1.65 Billion Dollars! (165000000 Dollars)
3: I think Mr.Google better let Mrs.Google hold the checkbook from now on!
2006-10-09
SDK:当前时间 [Bitx.cn]
SDK用.
注:Delphi的wsprintf无法直接使用,使用我修改后的wsprintf直接格式化以提升效率.
function NowTime: String;
var
SystemTime: TSystemTime;
TimrFmt: array[0..5] of Integer;
p: PChar;
begin
GetLocalTime(SystemTime);
with SystemTime do
begin
TimrFmt[0] := wYear;
TimrFmt[1] := wMonth;
TimrFmt[2] := wDay;
TimrFmt[3] := wHour;
TimrFmt[4] := wMinute;
TimrFmt[5] := wSecond;
end;
GetMem(p, 19);
try
wvsprintf(p, '%d-%02d-%02d %02d:%02d:%02d', @TimrFmt);
Result := String(p);
finally
FreeMem(p);
end;
end;
2006-10-08
让图片飞舞起来的JavaScript代码
打开某个带图片的网站后,复制下面的代码直接在"地址栏"里运行:
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);
提示:重复运行可提高速度.
效果:
2006-10-01
生日快乐:欢庆祖国成立57周年!
10月1号了,今天是中华人民共和国成立57周年的日子。
挨个打开了国内的几个大的门户网站,看看都有没有换上国庆LOGO,其中:
已经替换了LOGO的:
http://www.sina.com - 新浪
http://www.baidu.com - 百度
没有替换LOGO但醒目位置有国庆新闻的:
http://www.cctv.com - 中央电视台
http://www.china.com - 中华网
没有替换LOGO,醒目位置也无法找到国庆新闻的:
http://www.qq.com - 腾讯
http://www.163.com - 网易
http://www.sohu.com - 搜狐
http://cn.msn.com - MSN 中国
http://www.google.cn - Google 中国
http://www.chinaren.com - 中国人
http://www.21cn.com - 21CN
现在才刚刚凌晨,也许大多数网站都在“休息”吧,不知道明天白天会怎样?
2006-09-30
记录一下关于绘画方面的规划
都封装好了,懒得再合并到一堆,干脆各负责各的,这样效率也更高(虽然麻烦点):
1. 重新设计了个全新的CCanvas类,这个类主要用于双缓冲绘画(如果只是需要使用内存位图/内存画刷等简单资源,其它都自行处理的话,没必要使用如TCanvas那么包罗万象的类,虽然delphi的TCanvas写的很好,不过用它就代表资源的浪费/效率的损失。),解决闪烁问题。
2. 专门设计了个TPicture类,该类用于直接加载图片文件/流数据绘画。
其它:两者如果有需要交互的话也可以互相使用,并不影响其它。现在生成的程序已经150多K了,Pack测试看看发现还有80多K,汗~当然,发表的时候就不Pack了,免得看到这么小的程序孩以为是病毒。。。
另:刚备份了一下源代码,一不小心才发现,居然都写了1000多个文件了。。。难怪我管理的时候转来转去觉得比较头晕呢。。。还好使用了Delphi2006,比较便于源文件管理,如果还是Delphi7我实在不敢想象!
2006-09-25
正式转到Beta版使用 - Blogspot
Beta版得Template也可以直接修改HTML了,而且关于它得Template得A2功能Classes版已经不再提供,必须升级。
目前Blog改动:
1. 字体统一为 宋体 12px
2. 增设 Recent Comments 得 Feed (升级后Blog的Answer给出的HTML增加修改模板功能已经不能使用,Beta版如何添加又没告知,所以暂时这样,反正效果都一样)
3. The End.
Google Blog Template Walkthrough
Answer地址:Template Walkthrough
自定义性非常强,不过好像只有Classes版本可以用,我升级到Beta用很多标签都会被禁止,有点郁闷。
2006-09-18
wsprintf和wvsprintf的区别
最近写点东西,由于不想使用Delphi自带的Format函数(该函数会增加程序负担),所以采用标准API方式格式化字符串,但Delphi的Windows单元有很多问题,wsprintf就是其中有问题的一个。
不晓得Delphi怎么搞的,wsprintf的参数都不给全,Windows定义的为:
int wsprintf(
LPTSTR lpOut, // 输出缓冲区地址
LPCTSTR lpFmt, // 格式化串地址
... // 变量列表
Delphi居然直接把变量列表省略了。汗 - -!
如果只有一个变量需要转换都必须使用wvsprintf,而wvsprintf本来就是wsprintf的升级版,何必多次一举呢?
所以我重新定义了一下:
function winsprintf(Output: PChar; Format: PChar; Data: PChar): Integer; stdcall;
external user32 name 'wsprintfA';
这样就没问题了,另外关于标题的答案为:
前者为单一变量使用,后者为多变量使用,传递的是该引用地址的指针而已。
That's all
2006-09-17
unresolved external symbol _Atl{错误}@【ATL】
对VC非常不熟悉,包含各种各样头文件,连使用哪个都不知道,汗的不得了,今天就遇到一个问题。
为了一个Delphi的项目,想偷懒用VC的ATL来创建DLL调用,用ATL COM AppWizard新建了个DLL工程,使用MinDependency模式编译,结果出现如标题所示错误,百思不得其解,结果Google了一下,才知道少了两头文件:
#include <atlcom.h>
#include <atlhost.h>
还有个_main错误处理方法也很简单:屏蔽StdAfx.cpp中的#include <atlimpl.cpp>就可以了。
另外:VC也挺方便的,如果用 ATL 的话,CComBSTR, CComPtr等都会自动释放,开始还提心挑担的使用IStream*接口,再Release,这下了解了就方便了,嘿嘿!
本来是用D7+自己编译的system,现换D2006
主要是太麻烦了,太累,而且我只作SDK级开发,D7代码编辑器也没D2006好用!
FastMM随时都在升级,用D7的话就每次都要自己把原system.pas的内存操作该为基于FastMM的,再Dcc32一下,再替换D7的dcu,每次都累的半死,还担心会有错。吃力不讨好!
而且D7的一些内置操作真的很讨厌,比如 function Pos(),大爷的,我就没看到哪儿有这函数的过程,应该是编译器内置的(没深入考证),想做Unicode处理就只有改名使用,比如重新声明为 PosA() PosW(),kao!太不利于移植了!
刚好想到D2006已经在使用FastMM了,干脆就用它了!
什么升级打补丁的,就麻烦Borland代劳了,虽然目前发现D2006如果加载ActiveX unit会跟着加载SysUtils,我写的程序需要用的接口声明很少,就懒的去深究了,自己声明了就是,我还是专心做项目吧。
Say goodbye to Delphi7.
不得不用Delphi2006
为了安心,做了个小测试,比较Delphi7和Delphi2006的内存操作效率。
想法:循环做一亿次申请内存块,移动内存数据,销毁内存块,比较两者时间差距。
代码:
var
s: String;
p: PChar;
i: integer;
Start: Cardinal;
begin
Start := GetTickCount;
s := '123';
for i := 0 to 100000000 do
begin
GetMem(p, 256);
Move(Pointer(s)^, p^, Length(s));
FreeMem(p);
end;
Memo1.Lines.Add(IntToStr(GetTickCount - Start));
end;
结果:
Delphi7 用时:19000 (19秒)
Delphi2006 用时:7063 (大约7秒)
两者相差接近3倍。汗一个!
2006-09-16
2006-09-03
红色风暴"爆"无知,孟广美你太不该
昨晚在家看了中天综合台的红色风暴,主题是两岸演艺界大不同,作为对内地知之甚少的主持人利菁和其他嘉宾,在这里我就不想多说了,无知嘛,权当小朋友犯错,可以原谅.
而孟广美也是嘉宾之一,作为经常往来内地工作的艺人,你真的是太不应该了,完全是在跟风,在哗众取宠,在贬低内地和内地人,在内地,有人不认识你是正常的,还居然拿小朋友让你签名来说事,来讥讽人,殊不知却把自己给贬低了.你当然不比刘德华了,何况在内地你也不过是一个二三流的明星罢了.
更可气的是,说起去西部边远地区拍戏的经历,说是要大小便,只能挖一个洞解决,极尽嘲讽之能事,美国英国这些发达国家难道就没有贫穷的地方和贫穷的人吗?贫穷难道是一种罪过吗?谁不希望过上好日子!马桶对于特别贫困的地区的人来说,,的确是一件奢侈品.多少热衷慈善的名人慷慨解囊,为什么就独独你孟广美只有冷嘲热讽?你的爱心到底在哪里?能不能就请阁下捐个马桶呢?
说到南京大屠杀,仿佛你不是一个中国人似的,满嘴的"他们""他们",哪还有一丁点的爱国心,你懂得什么是爱国主义,什么是民族主义吗?!好象说过去的就让它过去吧,这是国耻,不是小孩吵架,你懂不懂呀?!
唉,原来就觉得你是一个没有内涵,眼神空洞无物的人,现在看来,果然如此.幸好你已经不在凤凰卫视做主持了,否则真是玷污了凤凰卫视和那帮特别好的主持人的名声.
当讲到内地现在还在播一些在台湾早已过气的歌手的歌时,孟广美又说前几天还在播九百九拾九朵玫瑰,是中央台哦.还特别强调是中央台.真是可笑之极,经典老歌谁说就不能播,台湾的费玉清的清音乐不都在唱老歌吗?!好的老的音乐有人愿意去聆听,难道就那么可笑吗?
在这里我就不再提孟广美说的所谓洗手间和厕所的事了,免得脏了我的笔.
本是同根生,相煎何太急.何况大陆的经济腾飞是全球华人有目共睹的.
内地的电视台真不应该再请你做主持了,亏你在内地还赚了不少钱呢,就算是看在钱的份上,你也不该胡说八道,这次第,怎一个"气"字了得?
冰鱼这两期“红色风暴”地址:
红色风暴 两岸艺界大不同(上)
红色风暴 两岸艺界大不同(下)
天涯社区讨伐孟广美的贴子
http://www14.tianya.cn/publicforum/Content/funinfo/1/237627.shtml
红色风暴官方网站
http://regine.org/phpbb/viewforum.php?f=14
孟广美签约的内地经纪公司论坛
http://www.long-d.com/luntan/ShowForum.asp?forumid=26
2006-09-02
所有软件都应该遵守的"六大原则"
所有软件都应该和Google一样遵守"六大原则":
1、安装
应用程序不应通过将自己隐藏于用户正在安装或升级的程序中等方式,秘密地安装在用户的计算机上。既使在捆绑安装时,也必须将各种应用程序的功能明确告知用户。
2、事前披露
当一项应用程序被安装或激活时,必须向用户说明其自身的主要和重要功能。
3、易于删除
用户应能轻易掌握如何终止或删除某项应用程序的方法。一旦某项应用程序被终止或删除,它不应继续保持活动状态或在一段时间后自行激活,或由另一程序激活。
4、动作透明
如果某项应用程序对用户体验产生了影响或改变,应向用户告知该程序就是引起这些变化的原因。
5、信息传送提示
如果一项应用程序收集并传送用户的地址等个人信息,用户应当被告知。
6、兼者择邻而居
应用程序提供者不应容许自己的产品被其他不遵守上述原则的应用程序所捆绑。
试用Firefox 2 Beta2
刚看到Firefox升级到了2.0b2版,赶紧下下来体验了一下,总的来说还是不错的,不过由于我所熟悉使用的扩展都没更新,所以暂时卸载回1.5.0.6版继续使用,等2.0正式版出来再换吧。体验一番后总的感觉有几个:
1. 程序反应速度比1.5.0.6快了些。
2. 用户界面上有了微调,据说是新雇用的设计师的成果,有点透明三维的那种效果,鼠标放上去会加亮那种。
3. 扩展不升级就用不了,我只有阻挡广告的扩展还能用,别的都提示不兼容。
4. 所有标签上都加了关闭按钮---Tab Mix Lite又不被兼容,FireFox的标签选项也只有那么寥寥几个,很不习惯。
2006-08-31
系统何时发送WM_PAINT消息?
关于WM_PAINT消息为何没有被处理这篇文章给了很好的解释。
(来自:http://dev.csdn.net/article/74/74935.shtm)
系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一般是通过InvalidateRect和 InvalidateRgn函数来完成的。InvalidateRect和InvalidateRgn把指定的区域加到窗口的Update Region中,当应用的消息队列没有其他消息时,如果窗口的Update Region不为空时,系统就会自动产生WM_PAINT消息。
系统为什么不在调用Invalidate时发送WM_PAINT消息呢?又为什么非要等应用消息队列为空时才发送WM_PAINT消息呢?这是因为系统把在窗口中的绘制操作当作一种低优先级的操作,于是尽 可能地推后做。不过这样也有利于提高绘制的效率:两个WM_PAINT消息之间通过InvalidateRect和InvaliateRgn使之失效的区域就会被累加起来,然后在一个WM_PAINT消息中一次得到 更新,不仅能避免多次重复地更新同一区域,也优化了应用的更新操作。像这种通过InvalidateRect和InvalidateRgn 来使窗口区域无效,依赖于系统在合适的时机发送WM_PAINT消息的机制实际上是一种异步工作方式,也就是说,在无效化窗口区域和发送WM_PAINT消息之间是有延迟的;有时候这种延迟并不是我们希望的,这时我们当然可以在无效化窗口区域后利用SendMessage 发送一条WM_PAINT消息来强制立即重画,但不如使用Windows GDI为我们提供的更方便和强大的函数:UpdateWindow和RedrawWindow。UpdateWindow会检查窗口的Update Region,当其不为空时才发送WM_PAINT消息;RedrawWindow则给我们更多的控制:是否重画非客户区和背景,是否总是发送WM_PAINT消息而不管Update Region是否为空等。
恼火!老是犯些低级错误!
今天一上午就为了处理Rebarwindow32在2000下未注册的问题了。
不停的从xp上取U盘,2000插U盘,时间就这么过去了。
到11:00才想起跟踪调试(先一直以为是代码的问题),才发现居然Rebar的Com没注册,又找了半天代码,突然发现,当初为了实现Delphi下的Unicode和Ansi转换方便,居然把GetProcAddress都给改成PWideChar了。结果当然无法得到地址,所以Com也就没有注册上了,那当然Rebar就无法创建了。
不过这有个问题:难道XP下GetProcAddress兼容PWideChar了?有空研究研究...
关于窗体的奇怪问题,正在想...
自己Register的控件(主窗体中的窗体,同样Createwindow创建,不过为了便于理解,就用控件来称呼),自己注册了WndProc过程 ,本来使用一切正常。
一不小心想重画了,鼓捣鼓捣,很容易就搞定。
本以为一切结束了,测试时发现一个问题:
往上拖动控件时一切正常,往下拖动时就拐了---我画了个居中的点,理论上无论怎样拖动都应该在中间,可往下拖动的时候那居中的点也跟着往下移动,除非手动刷新。
纳闷了!检查半天代码,没发现问题!没法,打开Spy来跟踪消息看看,突然发现往下拖动的时候居然没发WM_PAINT消息,我靠!太奇怪了,我重新设置了控件位置,也没屏蔽Redrow啊。
又一阵鼓捣,最后解决方法:把这个控件放到另外一个同样自己注册的控件之后建立就好了。
晕了,为何会如此却没想通,难道Defwindowproc会造成消息错位?本该控件1的消息发到控件2去了!?
研究研究再说吧。。。
发此文纯粹只是为了汗一个 (- -!)
2006-08-29
在Delphi 7 中加载MapControl或者SceneControl时会出现Invalid floating point operation的错误
错误描述
在Delphi 7 中使用ArcGIS Engine 9.1时,加载空的SceneControl或者为MapControl加载MXD文档都会出现Invalid floating point operation的错误。对于SceneControl,即使设计状态没有加载任何sxd文件,只要在Delphi 7中运行程序,就会出现Invalid floating point operation的错误。
导致原因
在Delphi 7中需要通过浮点单位控制指令设置浮点运算单位。浮点单位控制指令控制着浮点运算的精度、四舍五入的方式以及特定的浮点运算是否触发异常。可以参阅Intel处理器的详细文档。
在Delphi 7中有函数可以直接访问处理器的控制指令。比如,可以使用Set8087CW函数改变8087CW控制指令的值,从而改变程序浮点计算的行为。编程人员需要自己负责在程序结束时重置这个指令。
解决办法
第一种方法是下载并安装delphi 7 的update包。
需要注意的是,在安装补丁包之前,必须删除import中已经导入的所有esri的pas,dcu,dcr文件,编译并保存包含这些库的package,默认是dclusr.dpk。
第二种方法就是直接禁用浮点异常,方法如下:
在Delphi 7中,当使用OpenGL进行3D渲染时,推荐使用Set8087CW函数禁用浮点异常。可以在调用OpenGL函数之前,比如在mainForm的OnCreate的过程中写入: Set8087CW(0x133f)
实例代码:
1.声明全局的变量保存原有的8087CW设置
var
Saved8087CW: Word;
2.在mainForm的OnCreate过程中改变8087CW的值,改变之前先保存默认值
Saved8087CW := Default8087CW;
Set8087CW($133f); { Disable all fpu exceptions }
3.在程序结束前,使用默认值重置8087CW指令值。在mainForm的OnClose过程中
Set8087CW(Saved8087CW);
4.还有一点需要注意,如果在程序中使用了SceneControl.LoadSxFile载入了3D文档,那么必须在程序退出时,在Set8087CW之前调用IScene的ClearLayers方法清除图层,否则程序在退出时会出现异常。
参考代码为:
SceneControl1.Scene.ClearLayers;
Set8087CW(Saved8087CW);
5.还有在程序退出之前需要调用如下语句
(CoAoInitialize.Create as IAoInitialize).Shutdown;
2006-08-28
2006-08-23
表达式的类别与类型里面值得注意的
1. 这里的“长度”仅指参考长度(字节),在代码中可以用SizeOf()来取得该值。一些较复杂的数据类型,以及几乎所有的用户定义类型的长度,都在表中所列出的“长度”值之外。同时,这里的“长度”值还表明:如果该数据类型的变量被声明,则系统“至少”为该变量初始化的字节数。
2. 常量与全局变量的分配是不同的。但是,类型化常量与全局变量在同一内存空间中被分配,且使用相同的分配规则。
3. 官方资料中,“动态分配的内存”被定义为“动态变量”。但由于它实际上是变量的数据体部分。因此,为了将它与普通变量区分开来,这里称为变量 “动态分配的内存”。一些其他的函数也可以完成这样的内存分配,例如ReallocMem()、Initialize()、StrAlloc()和 StrNew()等。
4. 静态数组也将直接在栈上进行分配。这意味着在局部变量中声明过大的静态数组是不安全的。细节请参见2.3.3小节中的“数组类型”。
5. 以后的行文中,变量的这两个部分将分别以“变量”和“变量的内存占用”来称呼。需要一再强调的是:变量的内存占用、动态变量和变量“动态分配的内存”是同一概念。
6. 这种情况下,变量的4字节总是可以通常类型强制,当作指向其内存占用的指针进行操作。
7. 除了字符串和集合,Delphi中定义的常量大小都不能超过8字节(Int64)。否则必须声明成“类型化的”,而这种情况下,Delphi按照变量的规则进行内存分配。
8. 编译指示字$Align只对记录、类和对象有意义。它不影响字符串在堆栈和应用程序内存区中的内存分配规则。
9. 部分Delphi的内核源码同时提供两个版本,即“PUREPASCAL”和“BASM”版本。Delphi内核是以BASM版本编译的——PUREPASCAL版本的部分代码甚至在产品的正式版本中仍是有错误的。但通常而言,PUREPASCAL版本的代码是一个非常好的对照,也是学习BASM最佳的Sample。
10. 对于Linux系统来说,这两种字符串使用相同的处理机制。因此,Linux版本的WideString例程大多数直接跳转到AnsiString例程中。Delphi为WideString保留这些例程声明,以使得Linux版本的内核代码更易于维护。
11. Delphi手册中,该函数是两种声明。第三种声明只对动态数组的唯一化有意义。
12. 绝大多数(但并不是全部)的Delphi基本数据类型和明确声明过的类型,都具有惟一的一个类型信息。但是像整型这样一些简单数据类型的RTTI,通常是不需要关注的。同时需要注意的是:每一个类型信息都指向独立的内存结构。兼容的两个类型,在内存结构上也是相互独立的。
和剑桥合作:新协议为BT更大地提速
BitTorrent正和英国剑桥的Cachelogic在一个称为“Cache Discovery Protocol(CDP,缓存发现协议)”的新协议上展开合作,据推测对于点对点网络来说,它和DHCP的工作原理相像。这个协议是由 Cachelogic开发的。
DHCP自动的为网络上的设备分配IP地址而不要求用户的过多参与。与这种情况类似,新的CDP协议允许BT客户端自动的发现已经缓存在网络上的更好的种子,并且允许以更快的速度下载文件。预计这种新技术在只有少数种子文件的情况下特别有用。
网络服务提供商将会对这个新协议特别感兴趣。通过运用这项技术,能够加快下载的速度,但从上传数据方面来说,只会对下载用户的系统施加很少的限制。
2006-08-22
原来可视化开发工具也不简单啊
delphi是典型的RAD工具,强大的IDE功能基本上为新手提供了很大的方便。
最近几个同事都开始学习delphi了,我当然首当其冲当了个傀儡老师,我这三脚老师得到的微薄报仇就是几个鸡腿几根烟,和我被杀死的亿万脑细胞完全无法形成对比。
阿G就是其中之一,我不得不佩服他的学习热情,自己头天在家疯狂下载各种“XX日通delphi”,"delphi完全高手指南"之类垃圾教程,第二天就抱着他买的那本“Delphi进阶”对照着他下的那些垃圾狂啃起来。
对如此积极的“学生”,我当然乐于指导,不过最好只限于指导,千万别看他是怎么操作的:
G:我下了个delphi中文版,裤吧?这下轻松了!
B:Borland都把delphi卖了,听说有个公司买了,这么快出中文版了?
G:嘿嘿,对啊(他还不知道我在说什么 - -!),专门打的补丁。
B:靠!SB初学者才打中文补丁,你看教程都是英文的,TMD你又是英盲,我敢肯定你连怎么调试编译器都找不到了!
G:不是还有你嘛。
B:大脑短路10分钟。。。
---正在渡过漫长的10分钟---
G:咦?
B:(正在看自己的资料,听到这种声音就觉得天气真的热了,汗! - -!)
G:看来不行。
B:我就说嘛,别用中文补丁,该怎么学就怎么学,别TMD标新立异(这么说是为了爽他面子 - -!)。
G:不关中文的事,算了,给我找个Delphi8来,我对照着教程打都不行。
B:?为啥?你别看后面的哦,后面的是.NET,你看基础的就是了。
G:就是基础的,检查了n遍了,一个字没错,应该是Delphi8比Delphi7先进,编译不过。
B:先进?编译不过?(不会是用中文补丁的问题吧?)
G:嗯,对!Delphi7应该是老了,我这教程上最基础的都编译不了。
B:(那教程我看过,讲Win32和Pascal方面是基础又基础的东西,Delphi随便哪个版本都能过的)不会吧?我看看?
【G的程序:】
项目:
窗体:Form1(TForm)
窗体事件:无
其它组件: 无
代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage("我是神");
end;
……
B:我日!!!你个SB,谁TM叫你手工输的啊!
(B = Bitx ,也就是我)
看来Blogspot已经解封了
已经几周了吧?
一直访问blogspot都没问题了,开心不已!
一直嫌sina的速度太慢,最近图片还经常只现X(应该是为了防止图片盗链,对图片引用做了处理,可惜技术不到家,弄得正常访问都打不开),心情好的时候口水稍微多点,发表还告诉你你话多了,少说点!弄得人郁闷的不行!
现在一切问题都解决了,优秀的google提供了一切完美的服务,不用就sb了。。。
没有一位电影演员能像玛丽莲·梦露(转载)

没有一位电影演员能像玛丽莲·梦露那样,生前命途多舛,万众瞩目,光艳绝伦,60年代初“美国最受欢迎十大名人”,傲列榜首,总统肯尼迪屈尊居次;身后璨烂不衰,全球媒体冷炒热卖从未休止,一些正直人士也不断地为其悲惨之死仗义执言,奔走呼吁。她未获奥斯卡奖,但举世公认:她是20世纪美国电影的偶像。当年就有个美国人把多次结缡、两拿奥斯卡奖的伊丽莎白·泰勒与她对比:“泰勒是传奇,而梦露是神话。”
1962年8月4日夜,梦露赤身裸体、不明不白地死于洛杉矶住宅,年仅36岁。这位被称为“超级明星”、“好莱坞女神”的伟大的女演员,虽然流传于世的照片大多喜形于色,如花绽放,但她内心凄苦,艺海沉浮,几多挣扎,离开人世之际孓然一身,没有爱、没有家、没有孩子、没有金钱,在欺骗、侮辱和压榨她的社会罗网中香消玉殒。
她原名诺玛·琼·莫滕森。玛丽莲·梦露是1946年入好莱坞的艺名(玛为百老汇一明星之名,梦是外祖母的姓)。1926年6月1日生于洛杉矶慈善医院,是私生女。自幼遭父遗弃,当电影剪辑的母亲给她一张克拉克·盖博(《乱世佳人》男主演)的照片,她一直以他为父,照片始终带在身上,直到1961年与他合拍《不合时宜的人》。母系有精神病史,外祖父、母,舅父均死于精神病。母亲入精神病院后,小诺玛就出入于孤儿院、收容所,由社会救济处代找愿意领养她的家庭,先后辗转11家,饱尝流离之苦。
梦露被20世纪福克斯公司录用,正值她第一次婚姻结束(1942—1946)。她40年代初拍摄的一些封面模特照片,引起了公司老板霍华德·休斯的注意,下令寻找她。但各个关口,还须靠她自己去闯。她身无分文,后来回忆道:“我遇上了合适的男人,并给了他们需要的东西。”从一开始,梦露与好莱坞就是一种交易关系。好莱坞从来没有珍惜过她,而她却付出了自己的一切,成了好莱坞的摇钱树。
梦露演艺事业的转折发生在拍摄第14部影片的1952年。《夜阑人未静》中,她被出借一家小公司饰演一个小角色。影片拍摄期间,小报爆出三年前梦露拍裸体挂历的秘闻。那年,她陷于困境,由于付不出50美元租车费,信贷公司收回了她的庞蒂亚克牌汽车。她绝望地打电话给摄影师汤姆·凯利。由凯利妻子陪同,1949年5月27日,在大幅红色天鹅绒前,梦露拍下了那幅名闻遐迩的侧身裸体照(据说后上《花花公子》创刊号封面)。她得到50美元,取回汽车。两年后挂历印出,谣言四起,妇女组织频频抗议,风波闹大,制片公司一片慌乱。然而,面对媒体梦露却很坦然:“别人告诉我必须否认我拍过……但我宁愿说老实话。”于是,其身世引起了社会的同情。人们争先恐后购票看片,一睹梦露的芳容。福克斯公司抓紧机会,与梦露修改合同,同年之内又让她连上四部影片,大捞一把,梦露也就此声誉鹊起。
好莱坞下过包装梦露的功夫。1948年,哥伦比亚公司为她做过一次整容:用热蜡加电解法清除过多的毛发,扩大前额,修整鼻子和下巴,矫正突出的牙齿,重要的是,把她原来的浅棕色头发漂染成淡金色。两年后,经纪人约翰尼·海德又出资在贝弗利山庄最高级的美容厅为梦露剔掉鼻尖上一个小肉瘤,提高额际发线,再修下巴和牙齿,使之更加容光焕发。但好莱坞各公司从不给她有深度的角色,他们只把她当作“白痴美人”、“金发肉弹”、“性感艳星”,她的薪金从周75美元到500美元,最多时每部影片仅外加10万美元。对此梦露极为不满,多次提出要改换角色,时常用镇静、安眠等药物来化解拍片的压力,以至几度萌生摆脱好莱坞的去意。
福克斯公司秘书汉娜注意到,可怜的梦露“有时趴在更衣室的墙上放声大哭,有时呆呆地看着镜子里的自己好几个小时”。从无声电影时代,美国电影界演员、导演就服用兴奋剂、麻醉剂成风。梦露自然不例外,有人听到她和肯尼迪总统谈论过安非他明,她对药品的剂量、副作用了如指掌。经常是服了药,“无精打采”马上变得“神采奕奕”。
梦露拍片迟到是出名的,在伦敦拍《王子与歌女》有几次让巨星劳伦斯·奥立佛大为光火。但她绝非如有些传媒所渲染的那样蠢笨。一旦进入片场,就十分敬业。她渴望学习,一心想做个好演员,她得过“美国十大影星”称号,获过意大利、法国电影奖,她的笑靥和步态即为好莱坞的品牌,可是她并不满足于拍音乐喜剧、轻松恋爱片。1951年,她自费入洛杉矶大学进修美国史和文学史,一位女教师说她纯真得“像刚刚从修道院里出来”。她喜爱陀思妥耶夫斯基、海明威、阿瑟·密勒的作品,大明星格兰特说她是“一个真诚的人,一个非常可爱的人,她阅读所有刚出版的书籍”。1955年,她拒绝出演《怎样才能非常非常受人欢迎》,到纽约参加李·斯特拉斯伯格的演员讲习所学习,并与摄影家格林合办玛丽莲·梦露制片厂,以制片厂名义与福克斯签约,有权挑选角色和导演。此时,梦露已第二次离婚,她与棒球明星迪马吉奥的婚姻(1954)仅维持9个月,但两人友谊保持终生。梦露把自己的前途抵押在与著名剧作家阿瑟·密勒的第三次婚姻上:“我一辈子都在扮演玛丽莲·梦露,梦露、梦露。我一直都想把一切做好,而结果我只不过扮演了我自己的影子。这就是我靠近密勒的原因……在我和他成婚时,我心里想的是,有了他我就能摆脱玛丽莲·梦露”。
男人曾包围着梦露,梦露也利用过男人。按照美国的生活方式、好莱坞的生存法则,梦露有过她自己都不可原谅的失误,她的整个人生甚至就塌陷在这里。据有关传记披露,梦露至少小产4次,人流7次。玩弄、占有她的男人很多,真正爱她的很少。在梦露内心一直企盼真诚之爱。第一次离婚后,1952年10月3日,她曾与志同道合的电影编剧鲍勃·斯莱泽跑到墨西哥结婚,因公司干预,5天后取消婚约。前面提及的俄国人约翰尼·海德,为她离婚却娶她未成,突发心脏病去世,梦露伤心欲绝,吞下30粒宁比泰自尽,被人救起。然而,梦露希冀挽救心灵危机的第三次婚姻(1956—1960)又失败了。可怕的是,60年以后肯尼迪兄弟的魔爪伸向了梦露。尽管梦露是否为肯氏家族所害尚无结论,但肯尼迪兄弟与梦露有染,确实铁证如山。先是总统约翰,接着是被委托去“调停”的司法部长罗伯特,在中央情报局胡佛一再警告下,肯氏兄弟才切断与梦露联系。这时,梦露疲惫、颓唐已极,追寻肯氏兄弟无望,好莱坞又雪上加霜:中止与她的契约,她终于彻底崩溃。
梦露的埃伦娜第五大道居所,正门旁石墙刻有古老的拉丁铭文:“我已走完我的旅程……”她被认定“自杀”于4日周六,而6日周一就是传说她要召开记者招待会、公布与肯氏兄弟关系的日子。
她的葬礼,在8月8日——梦露与迪马吉奥相约复婚的时间举行。迪马吉奥主持,24人参加,好莱坞与政界名流一概拒之门外,按梦露遗嘱,遗产(仅有50万美元不动产)的一半赠给表演教师李·斯特拉斯伯格。墓地,每周三次献上两枝玫瑰,迪马吉奥坚持到1982年,之后,鲍勃·斯莱泽继续派人送花。
短短一生,梦露拍过29部影片。她给予别人的欢乐和幸福远胜于自己所得到的。20世纪福克斯公司总裁达里尔扎纳克承认:“不是谁发现了她,她是凭自己的努力争取到明星的地位的。”劳伦斯·奥立佛说得更为沉痛:“梦露小姐被利用被榨取的程度远非任何人所能相比。”(来源大众电影)
2006-08-21
啊哦。。。Google防守的好哦,嘿嘿
传了个flash到Google page center,却害怕流量限制,不敢使用,- -!
想了下,调过头来打算传到blog里,结果只支持图片。。。
改名为.gif之类都不行。。。会作图片编码检查。。。Google真聪明啊。。。
郁闷,别的都不放心,VC处理Delphi穿过来的Unicode地址却怎么都无法直接显示,真的头大啊。
实在不行就只有直接用Ansi了。。。 (- -!)凸
2006-08-10
印度解封Blogger.com的真相
我们都知道在上个月印度封杀了包括Google的blogger.com在内的多个大型网站,引起印度全国范围内众多blogger的强烈不满。但更戏剧化的事情发生在3天后,因为印度又解封了上述的网站。为什么?是因为印度有关部门听到了blogger的抱怨和不满?blogger的影响力真的有这么大吗?当然不是。
根据印度blogger Amit所获知的消息,印度政府不但下令全国几大ISP对这些网站进行解封,还对他们进行了责备甚至向他们发出了述因通知,让他们作出解释。这到底是怎么回事?
在今天发表的IndiaTimes的 一篇文章里,我们可大概了解解封的真相。原来这些网站之所以得到解封,竟然是因为印度的情报部门说上次的封杀事件对他们调查印度孟买711列车连环爆炸案 造成了极大的不便,因为他们一直在监察包括blogger.com上面的blog在内的网站,而封杀使得案件罪犯也失去了常用的联系方式,大大增加了侦察 的难度。因此印度的ISP们实际上是在破坏印度政府及相关部门的好事。
现在这些网站在印度不再被封杀,但却暴露出了印度情报部门一直在监视这些网站内容的事实。相信印度的blogger心情一定比较复杂。
看来最近Google在中国一定发生了什么事
上次发了贴以为Blogspot解封了,可才高兴了一下下,又恢复原状。
今天错误的点了一下 Firefox - 书签 - Blog - 在新标签页组中打开,打开了所有我收藏的Blog,当然其中有我的,没想到在关的时候,突然发现,居然Blogspot能访问了,这个高兴啊!
Google中国一定做了点什么,不然不可能短时间内出现这种事,当然这是好事,希望越多越好!
2006-08-03
Blogger解封了???
看到新闻说从8月1号开始解封的.
可官方通告又是这样说的:
=======================
星期二,八月一日,2006年
由于今天晚上早些时候进行了一次配置变更,所以大概有10%对blogspot的请求将不会被成功返回。用户在访问blogspot的时候可能感到速度缓慢或者看到一个服务器错误提示。
如果你遇上这个问题,请刷新你要访问的网页,这是一个不错的解决办法。同时我们也正在努力修复这个问题。
23:24更新:问题已得到解决。
23:56更新:更准确地说,问题已经得到解决,但可以还需要一点时间才能完全生效。
=======================
今天是3号了,怀着试验的心情跑来,居然还可以访问...
天佑啊!!!

