<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[小宇飞刀的BLOG]]></title> 
<link>http://vir.jxstnu.edu.cn/xieyunc/index.php</link> 
<description><![CDATA[小宇的网上家园 飞刀的技术博客]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[小宇飞刀的BLOG]]></copyright>
<item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?281</link>
<title><![CDATA[为何对凤姐只有嘲笑没有倾听[转]]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[感悟人生]]></category>
<pubDate>Sun, 28 Feb 2010 16:46:42 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?281</guid> 
<description>
<![CDATA[ 
	<p align="center"><strong>为何对凤姐只有嘲笑没有倾听:嘲笑中展示优越</strong></p><br/>&nbsp;&nbsp;&nbsp;&nbsp;来自四川农村的女孩罗玉凤，因开出了“非北大清华硕士不嫁”等7个被很多人认为不切实际的征婚条件，结果被网络戏称为“史上最牛的征婚女”。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;所谓“史上最牛”，不过是一种网络表述，但还是可以让人看出某种心态。罗玉凤是个什么人呢？为什么会得到如此的戏称？还是看看媒体对她的描述吧：身高1米46，其貌不扬，重庆人在上海，大专文凭。你还千万别小看了，她接受过许多媒体的采访，还被封为“凤姐”、“陆家嘴征婚女”等名号。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;我惊讶地发现，在有关罗玉凤征婚报道中大多是这类描述，稍微体察，便不难发现这些描述散溢着明显的鄙夷与不屑。为什么会出现这种情况？原因很简单：在很多人眼里，罗玉凤开出的征婚条件与自身条件反差太大，明显“不对称”。因此，把她的举动归究为“成功饥渴症”、“自大妄想”、“'贫二代'代表 ”，也就一点不奇怪了，还有人还就此喊出了“信凤姐，得自信”的网络口号，一样的充满了戏谑的味道。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;在所有这些戏谑性的描述中，罗玉凤也被异化成了一个标签化的怪物，仿佛是一个有病的人，不自量力，可笑之极。罗玉凤也因此成了一个供人取乐的话题人、笑料人。--既然是一个笑料人，那么大家在谈笑中在意的当然也就是她身上那些可资取笑的成分了，所以，那些关于罗玉凤的报道及评论，也大都集中在对罗玉凤的嘲讽上，不管怎样，罗玉凤在大家的谈笑中都扮演了一个供人任意剖析取笑的角色。而对于她特定语境之下到底在说什么，又说了什么？则不屑一顾，根本就没兴趣和耐心去听一听。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;说实话，我是很惊诧于这种可怕的同类相伤，其实都是生活在一个差不多层面上的人群，却让人看不出有丝毫的物伤其类的情愫，看到的却是“人为鱼肉，我为刀俎”般的冷酷，随意拿人取笑并以此为乐。这是一种已经固化于我们骨髓的轻慢与阴暗，弥漫开来的是一种无以言喻的优越感：觉得自己比罗玉凤聪明，有自知之明，不会做出她那样让人笑话的举动。我们也似乎早已习惯了在这种嘲笑别人中展示自己的优越感。这种情绪左右下，当然也就不可能做到去倾听罗玉凤说的话了，也压根儿就没打算要听听她在说什么。尤其是对于那些生活在社会底层的人们，我们往往更容易心生厌恶，更容易失去倾听的耐心。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;罗玉凤到底说了什么呢？她不过对自己未来的生活伴侣作一个期待，她的征婚条件如何，自身的条件又如何，并不重要，因为两者之间并不是一个必然的关系。这是一个女孩的生活梦想啊。不能因为她是农村人，不能因为她不漂亮，就认为她就连做梦的权利也没有了。我们对个人领域的热心度往往大大超过了公共领域，这真是一个奇怪的现象。如果再从社会层面上想，罗玉凤的征婚举动，其实也反映了农村女孩进入城市后的一种焦虑。这种焦虑其实是当下正徘徊在城市边缘也徘徊在乡村边缘的一群人的焦虑。只是，罗玉凤的这种焦虑却被淹没在她的那些所谓的雷人之语中了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;这也正是罗玉凤这一群人的悲哀。因为没有机会表达，因为没有谁去倾听，她们就有可能会寻找极端方式来表达自己的焦虑。所以，我更愿意把罗玉凤的这一举动理解为是一种郁积已久的焦虑因无法解决的极端表达。对于这种表达，我们更多的是嘲笑，却少有心酸，对于这些生活艰辛的人们，我们也多是鄙视，少有掌声，更没有倾听。这就是我们惯有的一种态度。<br/><br/>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?280</link>
<title><![CDATA[Visual Studio 2008 简体中文正式版下载及序列号(无使用期限限制,正式版)]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[WEB技术]]></category>
<pubDate>Sat, 02 Jan 2010 08:57:15 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?280</guid> 
<description>
<![CDATA[ 
	<span style="color: #0000FF;"><strong>Visual Studio 2008 简体中文正式版下载及序列号(无使用期限限制,正式版)</strong></span><br/><br/>1.让试用版变成正式版<br/>&nbsp;&nbsp;&nbsp;&nbsp;从Microsoft那下了7个压缩文件分包后，解压后是一个ISO文件。<br/>&nbsp;&nbsp;我用UltraISO编辑了下ISO文件：Setup-->setup.sdb文件提取出来编辑，将<br/>&nbsp;&nbsp;&nbsp;&nbsp;[Product Key]<br/>&nbsp;&nbsp;&nbsp;&nbsp;T2CRQGDKBVW7KJR8C6CKXMW3D<br/>改成<br/>&nbsp;&nbsp;&nbsp;&nbsp;[Product Key]<br/>&nbsp;&nbsp;&nbsp;&nbsp;PYHYPWXB3BB2CCMV9DX9VDY8T<br/>这样，安装的时候就默认是这个正版的序列号了。<br/>还有一种方法就是，不改这个文件，安装后，再添加删除程序的时候可以输入序列号：<br/>&nbsp;&nbsp;&nbsp;&nbsp;PYHYP－WXB3B－B2CCM－V9DX9－VDY8T<br/>也可以变成正版。<br/>好了，可以安装了^_^<br/>顺便把下载连接贴出来：<br/>官方下载地址：<br/><br/><a href="http://www.microsoft.com/downloads/details.aspx?familyid=D95598D7-AA6E-4F24-82E3-81570C5384CB&displaylang=zh-cn" target="_blank">http://www.microsoft.com/downloads/details.aspx?familyid=D95598D7-AA6E-4F24-82E3-81570C5384CB&displaylang=zh-cn</a><br/><br/>或直接下载压缩：<br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part1.exe" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part1.exe</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part2.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part2.rar</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part3.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part3.rar</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part4.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part4.rar</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part5.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part5.rar</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part6.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part6.rar</a><br/><a href="http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part7.rar" target="_blank">http://download.microsoft.com/download/0/8/3/0839ce16-0523-4407-9432-01958ee61aff/VS2008TeamSuite90DayTrialCHSX1429243.part7.rar</a><br/>团队资源管理器：<br/><a href="http://download.microsoft.com/download/d/7/2/d72f8415-7b4b-4168-ba3b-65c3ca4c1f81/VS2008TeamExplorerCHS.iso" target="_blank">http://download.microsoft.com/download/d/7/2/d72f8415-7b4b-4168-ba3b-65c3ca4c1f81/VS2008TeamExplorerCHS.iso</a><br/><br/>一些VS2008介绍及学习资料:<br/>Visual Studio 2008的性能改进以及十大新功能:<br/><a href="http://news.csdn.net/n/20080125/113132.html" target="_blank">http://news.csdn.net/n/20080125/113132.html</a><br/><br/>CSDN--Visual Studio 2008专题<br/><a href="http://subject.csdn.net/vs2008/" target="_blank">http://subject.csdn.net/vs2008/</a>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?277</link>
<title><![CDATA[Delphi优秀免费资源-[精]]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Tue, 22 Dec 2009 10:01:15 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?277</guid> 
<description>
<![CDATA[ 
	先感谢一下hi上面的"幸福苹果",本文转自"幸福苹果"。<br/>１、FastMM <br/>主页：<a href="http://fastmm.sf.net" target="_blank">http://fastmm.sf.net</a> Delphi 2006 中一个重要的更新就是使用开源内存管理器 FastMM 替调了使用了 N 年的老内存管理器。<br/><br/>FastMM 在外国 Delphi 社区非常有名，其主要目的就是重新实现一个高效、安全、稳定的内存管理器（Borland 的内存管理器问题多多，如 Dll 和 Exe 间无法共享，多线程下效率底－－一些情况下甚至于低一个数量级！），在代号为 Dexter 的 Delphi 2006 没 release 之前已经听李维大肆鼓吹说 Dexter 如何出色，还在 CSDN 上说他 Demo 证明 FastMM 在 Delphi 和 BCB <br/>下能提高 NNN% 的效率！<br/>相对旧内存管理器，FastMM 有诸多的优点：<br/><br/>a、彻底实现了 Borland 的内存管理器，可以完全取代现有的内存管理器（“取代”就是第一个 uses FastMM4，that is all ...） b、实现了内存管理器共享机制，Exe 和 Dll 间共享内存管理器不需要任何 Dll 支持 c、集成了内存泄漏检测功能 d、充分兼容现有的代码、Delphi 旧内存管理器模式 e、为了加速 Delphi IDE（如 Delphi 5/6/7、Delphi 2005）的启动速度、管理内存占用等，他提供了 BorlndMM.dll 的替代，直接替换 Bin 中的 Dll 即可！<br/><br/>２、FastCode <br/>主页：<a href="http://fastcode.sf.net" target="_blank">http://fastcode.sf.net</a> 国外一个非常知名的delphi项目，是一个高效的可代替delphi的rtl的函数库，里面的函数<br/>大多都是用汇编写成的，Delphi2006中就有很多代码就是参考了fastcode（或者直接拷贝过去）。 它就特点就是一个字：快！<br/><br/>３、VirtualTreeview <br/>主页：<a href="http://www.delphi-gems.com" target="_blank">http://www.delphi-gems.com</a> 最强大的树形控件，到底有多强，自已去体会吧！ 这个控件也是<br/>Delphi2006的IDE使用的控件之一（里面的所有树形相关控件都是用的这个），Delphi2006之所以速度快，很大程序上也有这个控件的一部分功劳！<br/><br/>４、graphics32 <br/>主页：<a href="http://www.graphics32.org" target="_blank">http://www.graphics32.org</a> Graphics32图像控件是专门用于Windows Bitmap快速绘脊辜及函式库，能够轻易制作半透明视觉效果，可以作出图层效果，缩放，Alpha混合，角度旋转等多种图像效果。 带有六个控件：TPaintBox32, TImage32, TBitmap32List, TRangeBar, TGaugeBar, TImgView32.<br/><br/>５、GraphicEx <br/>主页：<a href="http://www.delphi-gems.com" target="_blank">http://www.delphi-gems.com</a> Delphi的图形增强控件，为Delphi增加数十种图形格式的支持<br/><br/>TIFF images (*.tif; *.tiff), extended base line implementation<br/>1..16 bits per sample<br/>indexed, grayscale, RGB(A), CMYK, L*a*b*<br/>uncompressed, packed bits, LZW, CCITT T.4, Thunderscan, Deflate, new style JPEG<br/>GFI fax images (*.fax), uses TTIFFGraphic to read<br/>SGI images (*.bw, *.rgb, *.rgba, *.sgi)<br/>1..16 bits per sample<br/>indexed, grayscale, RGB(A)<br/>uncompressed, RLE<br/>Autodesk images files (*.cel; *.pic) old style only<br/>8 bits per sample, indexed and uncompressed<br/>Truevision images (*.tga; *.vst; *.icb; *.vda; *.win), write support included<br/>5 and 8 bits per sample<br/>grayscale, indexed, 15 bits RGB (555), 24 bits RGB(A)(888)<br/>uncompressed, RLE<br/>ZSoft Paintbrush images (*.pcx, *.pcc; *.scr)<br/>1..8 bits per sample<br/>grayscale, indexed, RGB<br/>uncompressed, RLE<br/>Kodak Photo-CD images (*.pcd)<br/>8 bits per sample in YCbCr in any resolution (192 x 128 up to 6144 x 4096)<br/>Portable pixel/gray map images (*.ppm, *.pgm, *.pbm)<br/>1 and 8 bits per sample<br/>grayscale, indexed, RGB uncompressed<br/>Dr. Halo images (*.cut, *.pal)<br/>8 bits per sample indexed, RLE compressed<br/>CompuServe images (*.gif)<br/>1, 4, 8 bits per sample indexed, LZW compressed<br/>SGI Alias/Wavefront images (*.rla, *.rpf)<br/>8 bits per sample RGB(A), RLE compressed<br/>Standard Windows bitmap images (*.bmp, *.rle, *.dib)<br/>Photoshop images (*.psd, *.pdd)<br/>1, 8, 16 bits per sample<br/>indexed, RGB, CMYK, CIE L*a*b*<br/>uncompressed and packed bits<br/>Paintshop Pro images (*.psp)<br/>1, 4, 8 bits per sample<br/>indexed, grayscale, RGB<br/>uncompressed, RLE and LZ77<br/>single-layered files only!<br/>Portable network graphic images (*.png)<br/>1, 2, 4, 8, 16 bits per sample<br/>indexed, grayscale alpha, RGB(A), LZ77 compressd <br/><br/>６、Toolbar 2000 <br/>主页：<a href="http://www.jrsoftware.org/" target="_blank">http://www.jrsoftware.org/</a> 强大的工具栏控件，delphi自带的Toolbar和它一比简直就是鸡肋！<br/><br/>７、CoolTrayIcon <br/>主页：<a href="http://subsimple.com/delphi.asp" target="_blank">http://subsimple.com/delphi.asp</a> <br/>CoolTrayIcon：在任务栏放置图标的控件，是同类空间中功能最为完善和强大的。 <br/>1、支持动态图标 <br/>2、交互式气球样式的提示框 <br/>3、支持bitmaps到icons的转换 <br/>4、支持设计状态预览 <br/>5、提供继承的TextTrayIcon可以让你直接显示Text文本 <br/>6、8个代码例子1个exe例子。<br/><br/>它的网站还有其它优秀资源若干！　　<br/><br/>８、PicShow <br/>主页：<a href="http://www.delphiarea.com" target="_blank">www.delphiarea.com</a> TPicShow是一套图形平滑特效控制组件，包含150多种特效。 TDBPicShow是数据感知的TPicShow组件。<br/><br/>９、simplegraph <br/>主页：<a href="http://www.delphiarea.com" target="_blank">www.delphiarea.com</a> 一个简单易用的开源矢量控件,比较适合做工作流和其它一些简单的需要矢量图形的场合. <br/><br/>１０.EssModel <br/>主页：<a href="http://essmodel.sourceforge.net/index.html" target="_blank">http://essmodel.sourceforge.net/index.html</a> 将代码转换为UML图形的工具，支持Delphi和Java<br/><br/>１１.GDI+ Plus <br/>HomePage: <a href="http://www.progdigy.com/modules.php?name=gdiplus" target="_blank">http://www.progdigy.com/modules.php?name=gdiplus</a><br/><br/>１２JVCL、JCL <br/>主页：<a href="http://jvcl.sf.net" target="_blank">http://jvcl.sf.net</a> <a href="http://jcl.sf.net" target="_blank">http://jcl.sf.net</a><br/><br/>JVCL JEDI-VCL 是开放源码的 Delphi 控件库，有 300 多个控件。很多知名的控件 Rxlib/Ralib/DockPresident等等都加入了JVCL的队伍，作为开放源码项目，这些控件附带源码，而说有原码采用相同的编码标准 (Coding standard)，保持了程序格式的统一。另外，这有300 多个控件的控件库使用 Mozilla Public Licence("MPL") 。 Delphi 程序员如果需要什么控件，建议先去 JVCL <a href="http://jvcl.sourceforge.net" target="_blank">http://jvcl.sourceforge.net</a> 找找，说不定已经有现成的可以用了。<br/><br/>JCL：大量的函数库让人爱不释手，基本你用的函数在这里都能找到！<br/><br/>１３TMPHexEditor <br/>主页：<a href="http://www.mirkes.de/en/delphi/vcls/hexedit.php" target="_blank">http://www.mirkes.de/en/delphi/vcls/hexedit.php</a><br/><br/>优秀的十六进制编辑控件<br/><br/>１４SynEdit <br/>主页：<a href="http://synedit.sourceforge.net" target="_blank">http://synedit.sourceforge.net</a> 最好的代码编辑控件，支持语法高亮显示，品质超过所有同类的商业控件！<br/><br/>１５LOG4J<br/>主页：<a href="http://log4delphi.sourceforge.net/" target="_blank">http://log4delphi.sourceforge.net/</a><br/><br/>用过java的人，应该很熟悉log4j吧？<br/><br/>What is Log4Delphi? Log4Delphi is an Open Source project that aims to produce a high quality and usable <br/><br/>logging suite for Borland's Delphi based on the Log4J package from the Apache <br/><br/>Software Foundation.<br/><br/>The main goals of the project are:<br/><br/>Simplicity. Simplicity should drive everything, the suite should be simple to <br/><br/>understand and simple to use. Loosely based on Log4J. The Log4J package is a mature logging package for the Java <br/><br/>Platform. Log4Delphi is based on that package in such a way that those who know and <br/><br/>understand Log4J will easily pick up and learn Log4Delphi. Finally, Log4Delphi should be flexible enough to easily integrate into new and <br/><br/>existing Delphi projects, by following standard Delphi practices. Those interested in the Log4J package can find more information here.<br/><br/>１５ DUnit Xtreme testing for Delphi 单元测试 EurekaLog 异常 DelForEX 代码排版<br/><br/>１６ 还有dspack，N多视频相关软件都是用dspack写的。Asphyre免费开源的delphi游戏引擎，也是用directx的。<br/><br/>１７ zeoslib（免费的数据库引擎） <br/>主页：<a href="http://zeoslib.sf.net" target="_blank">http://zeoslib.sf.net</a><br/>不但可以访问免费的小型的数据库如：mysql,postgresql,interbase,firebird,而且mssql,db2,oracle,sybase 也同样支持！<br/>更愉快的： 访问任何数据库都是统一的控件，只要选择不同的Protocol就可以了<br/><br/>１８ 开源的xml读写控件 <br/>1.XMLParser <a href="http://www.destructor.de/" target="_blank">http://www.destructor.de/</a> <br/>2.omnixml <a href="http://www.omnixml.com/" target="_blank">http://www.omnixml.com/</a> <br/>3.XDOM <a href="http://www.philo.de/xml/&nbsp;&nbsp;" target="_blank">http://www.philo.de/xml/&nbsp;&nbsp;</a>功能一个比一个强，就看你喜欢哪一个了，都不需要dll<br/><br/>１９ Tbx <br/>主页：<a href="http://www.g32.org/tbx/" target="_blank">http://www.g32.org/tbx/</a> <a href="http://www.rmklever.com/delphitbx.html" target="_blank">http://www.rmklever.com/delphitbx.html</a><br/>tbx是一套非常优秀的ToolBar2000的界面增强控件，虽然比devexpress功能稍弱，但是界面上却比它更为漂亮，而且是免费的<br/><br/>２０ 用于支持多语言的VCL孔件组 TntWare Delphi Unicode Controls <br/>主页：<a href="http://www.tntware.com/delphicontrols/unicode/" target="_blank">http://www.tntware.com/delphicontrols/unicode/</a><br/><br/>２１ Fundamentals <br/>主页：<a href="http://fundementals.sourceforge.net/" target="_blank">http://fundementals.sourceforge.net/</a><br/>Delphi Fundamentals是一套综合的Delphi代码模块。包括用于处理Unicode,字符串，日期结构，Socket 组件和数学运算的类库<br/><br/>２２ Pascal Script 3.0 (原ifps III) <br/>主页：<a href="http://www.remobjects.com" target="_blank">http://www.remobjects.com</a><br/><br/>Innerfuse Pascal Script 3 是一款免费的用Delphi编写的脚本引擎，IFPS允许你在程序运行时使用Object Pascal语言，是一套能够编译到exe文件的单元，使用脚本引擎的好处：能够让你的程序让用户的自定义而不需要重新编译，你能够发布升级程序只需要发布脚本文件即可。<br/><br/>品质优秀，即使和商业的脚本引擎相比是有过之而无不及（如fastscript，tms script）曾有人评价说：它是除了delphi以外最强大的，虽然有些夸张，但也从某些方面印证了它的强大！<br/><br/>２３ TDelphiWebScript <br/>主页：<a href="http://www.dwscript.com/" target="_blank">http://www.dwscript.com/</a><br/><br/>TDelphiWebScript(DWS)提供类似Delphi中Pascal语言的Script语言，可用于编写Web服务器端的cgi、 ISAPI、NSAPI应用程序，其包含的TdwsFunc控件能够为DelphiWebScript增添新函数。<br/><br/>DelphiWebScript语言和 PERL相比易读易学，可以象PHP或ASP一样被综合在HTML代码中<br/><br/>２４ turbopower<br/><br/>主页：<a href="http://www.turbopower.com/" target="_blank">http://www.turbopower.com/</a> 曾经最优秀的商业控件，今天的开源产品<br/><br/>Abbrevia：数据压缩控件<br/><br/>Async Professional：最好的通讯控件 Async Professional CLX<br/><br/>B-Tree Filer：看名字就知道是做什么的了<br/><br/>Essentials：漂亮的界面开发控件<br/><br/>FlashFiler：优秀的数据库引擎<br/><br/>Internet Professional： 开发Internet的利器<br/><br/>LockBox：加密控件，支持多种加密算法<br/><br/>OfficePartner：Office自动化的对象的封装<br/><br/>OnGuard： 实现软件的Demo版设置,过期等<br/><br/>Orpheus：完成类似Outlook功能的控件<br/><br/>ShellShock：Windows Shell的功能封装<br/><br/>SysTools：优秀的函数库，甚至包含二维条码控件 SysTools for Kylix<br/><br/>Visual PlanIt：日程,日历控件<br/><br/>XML Partner：这个就不用说了<br/><br/>２５ 推荐了那么多的国外资源，现在来介绍一下国内的精品，看过你就会知道，国内的Delphi人员的开发水平丝毫不比国外逊色！<br/><br/>1.CnPack <br/>主页：<a href="http://www.cnpack.org" target="_blank">http://www.cnpack.org</a> CnPack 组件包是一个涵盖不可视工具组件、界面控件、网络通讯组件、多语言处理等多个方面的 Delphi/C++ Builder 组件包。<br/><br/>2.　CnWizards IDE 专家包是一组集成在 Delphi/C++ Builder 的 IDE 中，用于增强 IDE 功能、提高 IDE 的可用性及开发效率的工具<br/><br/>3.AAFont 平滑特效字体控件包 <a href="http://www.cnpack.org/showdetail.php?id=152&#9001;=zh-cn" target="_blank">http://www.cnpack.org/showdetail.php?id=152&#9001;=zh-cn</a> CnPack 开发组管理员 周劲羽 个人作品。 平滑特效字体控件包是一个基于平滑（Anti-aliasing）和特效（Effect）字体技术的控件包，支持透明、半透明、阴影、模糊、渐变色、字体纹理、噪声、轮廓字等特效。 该控件包为开放源码的免费控件包！<br/><br/>4.应用程序病毒免疫器 <a href="http://www.cnpack.org/showdetail.php?id=151&#9001;=zh-cn" target="_blank">http://www.cnpack.org/showdetail.php?id=151&#9001;=zh-cn</a> CnPack 开发组管理员 与月共舞 个人作品。 用于给可执行文件增加一个病毒免疫头，当文件被非法修改后，允许自动进行文件修复。 该软件为开放源码的自由软件！<br/><br/>5.DockPresident 停靠窗口控件包 <a href="http://www.cnpack.org/showdetail.php?id=153&#9001;=zh-cn" target="_blank">http://www.cnpack.org/showdetail.php?id=153&#9001;=zh-cn</a> CnPack 开发组成员 鲁小班 个人作品。 功能强大的停靠窗口开发控件包，支持多种停靠效果，使用简便.<br/><br/>6.JediEdit 绝地程序编辑器 <a href="http://jediedit.sf.net" target="_blank">http://jediedit.sf.net</a><br/><br/>7.DGL：Delphi版的stl实现 <a href="http://dev.cq118.com/web" target="_blank">http://dev.cq118.com/web</a><br/><br/>8.数学函数动态编译器TCompile类 <a href="http://www.tomore.com/1/2613.html" target="_blank">http://www.tomore.com/1/2613.html</a><br/><br/>２６ EasyGrid 优秀的国产表格控件<br/><br/><a href="http://www.2ccc.com/article.asp?articleid=773" target="_blank">http://www.2ccc.com/article.asp?articleid=773</a><br/><br/>２７ <a href="http://www.freebyte.com/programm" target="_blank">http://www.freebyte.com/programm</a> ... phiunicodelibraries 
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?276</link>
<title><![CDATA[月薪一万的乞丐给我上了震撼的一课!!!![转帖]]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[感悟人生]]></category>
<pubDate>Sun, 15 Nov 2009 11:02:44 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?276</guid> 
<description>
<![CDATA[ 
	<span style="color: #0000FF;"><strong>月薪一万的乞丐给我上了震撼的一课!!!!</strong></span><br/>我拎着刚买的levi’s从茂业出来，站在门口等一个朋友。一个职业乞丐发现了我，非常专业的、径直的停在我面前。这一停，于是就有了后面这个让我深感震撼的故事，就象上了一堂生动的市场调查案例课。为了忠实于这个乞丐的原意，我凭记忆尽量重复他原来的话。<br/><br/>“先生……行行好，给点吧。”我一时无聊便在口袋里找出一个硬币扔给他并同他攀谈起来。 乞丐很健谈。“……我只在华强北一带乞讨，你知道吗？我一扫眼就见到你。在茂业买levi’s，一定舍得花钱……”，“哦？你懂的蛮多嘛！”我很惊讶。<br/><br/>“做乞丐，也要用科学的方法。”他说。我一愣，饶有兴趣地问“什么科学的方法？”，“你看看我和其他乞丐有什么不同的地方先？”我仔细打量他，头发很乱、衣服很破、手很瘦，但都不脏。<br/><br/>他打断我的思考，说：“人们对乞丐都很反感，但我相信你并没有反感我，这点我看的出来。这就是我与其他乞丐的不同之处。”我点头默认，确实不反感，要不我怎么同一个乞丐攀谈起来。<br/><br/>“我懂得swot分析，优势、劣势、机会和威胁。对于我的竞争对手，我的优势是我不令人反感。机会和威胁都是外在因素，无非是深圳人口多和深圳将要市容整改等。”“我做过精确的计算。这里每天人流上万，穷人多，有钱人更多。理论上讲，我若是每天向每人讨1块钱，那我每月就能挣30万。但是，并不是每个人都会给，而且每天也讨不了这么多人。所以，我得分析，哪些是目标客户，哪些是潜在客户。”他润润嗓子继续说，“在华强北区域，我的目标客户是总人流量的3 成，成功几率70%。潜在客户占2成，成功几率50%；剩下5成，我选择放弃，因为我没有足够的时间在他们身上碰运气。”<br/><br/>“那你是怎样定义你的客户呢？”我追问。<br/><br/>“首先，目标客户。就像你这样的年轻先生，有经济基础，出手大方。另外还有那些情侣也属于我的目标客户，他们为了在异性面前不丢面子也会大方施舍。其次，我把独自一人的漂亮女孩看作潜在客户，因为她们害怕纠缠，所以多数会花钱免灾。这两类群体，年龄都控制在20~30岁。年龄太小，没什么经济基础；年龄太大，可能已结婚，财政大权掌握在老婆手中。这类人，根本没戏，恨不得反过来找我要钱。”<br/><br/>“那你每天能讨多少钱。”我继续问。“周一到周五，生意差点，两百块左右吧。周末，甚至可以讨到四、五百。”<br/><br/>“这么多？”见我有些怀疑，他给我算了一笔帐。“和你们一样，我也是每天工作8小时，上午11点到晚上7点，周末正常上班。我每乞讨1次的时间大概为5秒钟，扣除来回走动和搜索目标的时间，大概1分钟乞讨1次得1块钱，8个小时就是480块，再乘以成功几率60%[（70%+50%），得到将近 300块。”，“千万不能黏着客户满街跑。如果乞讨不成，我决不死缠滥打。因为他若肯给钱的话早就给了，所以就算腆着脸纠缠，成功的机会还是很小。不能将有限的时间浪费在无施舍欲望的客户身上，不如转而寻找下一个目标。”强！这个乞丐听上去真不可貌相，倒像是一位资深的市场营销总监。<br/><br/>“你接着说。”我更感兴趣了，看来今天能学到新的东西了。“有人说做乞丐是靠运气吃饭，我不以然。给你举个例子，女人世界门口，一个帅气的男生，一个漂亮的女孩，你选哪一个乞讨？”，我想了想，说不知道。<br/><br/>“你应该去男的那儿。身边就是美女，他不好意思不给。但你要去了女的那边，她大可假装害怕你远远地躲开。”<br/><br/>“再给你举个例子。那天cocopark门口，一个年轻女孩，拿着一个购物袋，刚买完东西；还有一对青年男女，吃着冰淇淋；第三个是衣着考究的年轻男子，拿着笔记本包。我看一个人只要3秒钟，我毫不犹豫地走到女孩面前乞讨。女孩在袋子里掏出两个硬币扔给我，并奇怪我为什么只找她乞讨。我回答说，那对情侣，在吃东西，不方便掏钱；那个男的是高级白领，身上可能没有零钱；你刚从超市买东西出来，身上肯定有零钱。”<br/><br/>有道理！我越听越有意思。<br/><br/>“所以我说，知识决定一切！”我听十几个总裁讲过这句话，第一次听乞丐也这么说。“要用科学的方法来乞讨。天天躺在天桥上，怎么能讨到钱？走天桥的都是行色匆匆的路人，谁没事走天桥玩，爬上爬下的多累。要用知识武装自己，学习知识可以把一个人变得很聪明，聪明的人不断学习知识就可以变成人才。21世纪最需要的是什么？就是人才。”<br/><br/>“有一次，一人给我50块钱，让我替他在楼下喊‘安红，我想你’，喊100声。我一合计，喊一声得花5秒钟，跟我乞讨一次花费的时间相当，所得的酬劳才5毛钱，于是我拒绝了他。”<br/><br/><br/>“在深圳，一般一个乞丐每月能讨个千儿八百。运气好时的大概两千多点。全深圳十万个乞丐，大概只有十个乞丐，每月能讨到一万以上。我就是这万里挑一中的一个。而且很稳定，基本不会有很大的波动。”太强了！我越发佩服这个乞丐了。<br/><br/>“我常说我是一个快乐的乞丐。其他乞丐说是因为我讨的钱多，所以快乐。我对他们说，你们正好错了。正是因为我有快乐、积极的心态，所以讨的钱多。”说的多好啊！<br/><br/>“乞讨就是我的工作，要懂得体味工作带来的乐趣。雨天人流稀少的时候，其他乞丐都在抱怨或者睡觉。千万不要这样，用心感受一下这坐城市的美。晚上下班后带着老婆孩子逛街玩耍看夜景，一家三口其乐融融，也不枉此生了。若是碰到同行，有时也会扔个硬币，看着他们高兴的道谢走开，就仿佛看见自己的身影。”<br/><br/>“你还有老婆孩子？”我不禁大声赞叹，引来路人侧目。“我老婆在家做全职太太，孩子念小学。我在福田区按揭了一套房，十年分期，还差六年就还清了。我要努力挣钱，供我儿子读大学念市场营销专业，然后子承父业当一个比我更出色的乞丐。”“我5年前在微软中华大区做市场策划，2年前升为营销经理，月薪5千。那时按揭了一台1万多的三星笔记本，每个月还款2千，要死要活的。后来我想这样永远也出不了头，就辞职不干了，下海来做乞丐，我愿意做一个高素质的乞丐。”<br/><br/>听完，我激动地说：“你有没有兴趣收我做徒弟……
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?275</link>
<title><![CDATA[快速地删除一个目录]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Sun, 25 Oct 2009 02:54:31 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?275</guid> 
<description>
<![CDATA[ 
	以往删除目录时，都需要先用递归删干净目录下的文件和子文件夹，这样做的时候，如果文件数量大，那么删除会非常慢，于是找了个方便一点的方法，直接使用API将目录删除。<br/><br/>代码如下：<br/><textarea name="code" class="delphi" rows="15" cols="100">function DelDirectory(const Source: string): boolean;
var
&nbsp;&nbsp;&nbsp;&nbsp;fo: TSHFILEOPSTRUCT;
begin
&nbsp;&nbsp;&nbsp;&nbsp;FillChar(fo, SizeOf(fo), 0);
&nbsp;&nbsp;&nbsp;&nbsp;with fo do
&nbsp;&nbsp;&nbsp;&nbsp;begin
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wnd&nbsp;&nbsp;&nbsp;&nbsp;:= 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wFunc := FO_DELETE;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pFrom := PChar(Source + #0);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTo&nbsp;&nbsp;&nbsp;&nbsp;:= #0#0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fFlags := FOF_NOCONFIRMATION + FOF_SILENT;
&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;Result := (SHFileOperation(fo) = 0);
end;</textarea>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?274</link>
<title><![CDATA[DBGridEH表格区填满表格线的问题[转帖]]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Sat, 24 Oct 2009 13:58:33 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?274</guid> 
<description>
<![CDATA[ 
	这是网络上的一个转帖，本文来源：<a href="http://blog.csdn.net/Rzhghost/archive/2007/05/22/1620235.aspx" target="_blank">http://blog.csdn.net/Rzhghost/archive/2007/05/22/1620235.aspx</a><br/>表格区填满表格线的问题，修改如下(经博主实践，①内容在EHLib 3.6版本，②内容在EHLib 4.1.4和4.2.16版本中均验证通过)：<br/><span style="color: #0000FF;"><strong>①3.6版本中修改DBGridEh.pas单元的UpdateRowCount过程：</strong></span><br/><textarea name="code" class="delphi" rows="15" cols="100">procedure TCustomDBGridEh.UpdateRowCount;
var BetweenRowHeight, t: Integer;
 OldRowCount, OccupiedHeight, VisibleDataRowCount, NewRowCount: Integer;
&nbsp;&nbsp;//。。。。。。。。。。。。。。
begin
&nbsp;&nbsp;//...............................
 with FDataLink do
&nbsp;&nbsp; if not Active or (RecordCount = 0) or not HandleAllocated then
&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp; //.................
&nbsp;&nbsp; end else
&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp; VisibleDataRowCount := (ClientHeight - OccupiedHeight &#123;- LineHeight&#125;) div DefaultLineRowHeight;
&nbsp;&nbsp;&nbsp;&nbsp; if VisibleDataRowCount <= 0 then VisibleDataRowCount := 1;

&nbsp;&nbsp;&nbsp;&nbsp; FDataLink.BufferCount := VisibleDataRowCount;
&nbsp;&nbsp;&nbsp;&nbsp; if FFooterRowCount = 0 then&nbsp;&nbsp;//增加的一个条件，用户可以用FooterRowCount值来决定是否填满表格线
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VisibleDataRowCount := FDataLink.RecordCount;
&nbsp;&nbsp;&nbsp;&nbsp; Inc(OccupiedHeight, DefaultLineRowHeight * VisibleDataRowCount);
&nbsp;&nbsp;&nbsp;&nbsp; NewRowCount := VisibleDataRowCount + TopDataOffset;

&nbsp;&nbsp;&nbsp;&nbsp; if FooterRowCount > 0 then
&nbsp;&nbsp;&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NewRowCount := NewRowCount + FooterRowCount + 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(NewRowCount);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BetweenRowHeight := ClientHeight - OccupiedHeight &#123;- LineHeight&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if BetweenRowHeight < 0 then BetweenRowHeight := 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //RowHeights[TopDataOffset + VisibleDataRowCount] := BetweenRowHeight;//原代码行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RowHeights[TopDataOffset + VisibleDataRowCount] := 0;//修改后的代码行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //把多余的不足一行的高度加在最后一行,增加下面一行代码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RowHeights[FTitleOffset + VisibleDataRowCount] := DefaultRowHeight+BetweenRowHeight;
&nbsp;&nbsp;&nbsp;&nbsp; end else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(NewRowCount);

&nbsp;&nbsp;&nbsp;&nbsp; UpdateActive;
&nbsp;&nbsp; end;
 if OldRowCount <> RowCount then Invalidate;
end;</textarea><br/><br/><span style="color: #0000FF;"><strong>②4.14版本中也是修改DBGridEh.pas单元的UpdateRowCount过程：</strong></span><br/><textarea name="code" class="delphi" rows="15" cols="100">procedure TCustomDBGridEh.UpdateRowCount;
var
 BetweenRowHeight,&#123;恢复被注释掉的变量BetweenRowHeight&#125; t: Integer;
 OldRowCount, OccupiedHeight, VisibleDataRowCount, NewRowCount: Integer;
。。。。。。。。。。。。。
begin
...........................
 with FDataLink do
&nbsp;&nbsp; if not Active or (RecordCount = 0) or not HandleAllocated then
&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp; //MoveColRow(Col, TitleOffset, False, False);

&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(1 + TopDataOffset);
&nbsp;&nbsp;&nbsp;&nbsp; ContraRowCount := FooterRowCount;
&nbsp;&nbsp;&nbsp;&nbsp; //恢复原代码中被注释掉的语句行
&nbsp;&nbsp;&nbsp;&nbsp; (*========================================================================*)
&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(1 + TopDataOffset);
&nbsp;&nbsp;&nbsp;&nbsp; Inc(OccupiedHeight, DefaultLineRowHeight);
&nbsp;&nbsp;&nbsp;&nbsp; if HandleAllocated then
&nbsp;&nbsp;&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (FooterRowCount > 0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(RowCount + FooterRowCount + 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BetweenRowHeight := ClientHeight - OccupiedHeight &#123;- LineHeight&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if BetweenRowHeight < 0 then BetweenRowHeight := 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RowHeights[TopDataOffset + 1] := BetweenRowHeight;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;
&nbsp;&nbsp;&nbsp;&nbsp; end;
&nbsp;&nbsp;&nbsp;&nbsp; (*========================================================================*)
&nbsp;&nbsp; end else
&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp; VisibleDataRowCount := (ClientHeight - OccupiedHeight &#123;- LineHeight&#125;) div DefaultLineRowHeight;
&nbsp;&nbsp;&nbsp;&nbsp; if VisibleDataRowCount <= 0 then VisibleDataRowCount := 1;

&nbsp;&nbsp;&nbsp;&nbsp; FDataLink.BufferCount := VisibleDataRowCount;
&nbsp;&nbsp;&nbsp;&nbsp; if FFooterRowCount = 0 then&nbsp;&nbsp;//增加的一个条件，用户可以用FooterRowCount值来决定是否填满表格线&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VisibleDataRowCount := FDataLink.RecordCount;
&nbsp;&nbsp;&nbsp;&nbsp; Inc(OccupiedHeight, DefaultLineRowHeight * VisibleDataRowCount);
&nbsp;&nbsp;&nbsp;&nbsp; NewRowCount := VisibleDataRowCount + TopDataOffset;

&nbsp;&nbsp;&nbsp;&nbsp; if FooterRowCount > 0 then
&nbsp;&nbsp;&nbsp;&nbsp; begin
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(NewRowCount);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ContraRowCount := FooterRowCount;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //恢复原代码中注释掉的部分
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*========================================================================*)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NewRowCount := NewRowCount + FooterRowCount + 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(NewRowCount);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BetweenRowHeight := ClientHeight - OccupiedHeight &#123;- LineHeight&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if BetweenRowHeight < 0 then BetweenRowHeight := 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //RowHeights[TopDataOffset + VisibleDataRowCount] := BetweenRowHeight;//这一行仍然不要，改成下面的代码
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (*========================================================================*)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RowHeights[TopDataOffset + VisibleDataRowCount] := 0;//修改后的代码行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //把多余的不足一行的高度加在最后一行,增加下面一行代码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RowHeights[FTitleOffset + VisibleDataRowCount] := DefaultRowHeight+BetweenRowHeight;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; end else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetRowCount(NewRowCount);

&nbsp;&nbsp;&nbsp;&nbsp; UpdateActive;
&nbsp;&nbsp; end;
 if OldRowCount <> RowCount then Invalidate;
end;</textarea><br/><br/>Tags - <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=dbgrideh" rel="tag">dbgrideh</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E8%25A1%25A8%25E6%25A0%25BC%25E5%258C%25BA%25E5%25A1%25AB%25E6%25BB%25A1" rel="tag">表格区填满</a>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?273</link>
<title><![CDATA[在Delphi如何实现模拟组合按键，如发送Ctrl_F的按键消息]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Sat, 24 Oct 2009 13:13:15 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?273</guid> 
<description>
<![CDATA[ 
	利用 keybd_event函数可实现，如下面的代码用以实现在一个公共菜单中模拟Ctrl_F按钮以调用DBGridEH的查找对话框功能：<br/>这是在一个ActionList中的某一Action的OnExecute事件代码。<br/><textarea name="code" class="delphi" rows="15" cols="100">procedure TDM.act_LocateExecute(Sender: TObject);
var
&nbsp;&nbsp;myPopupMenu:TPopupMenu;
&nbsp;&nbsp;MyDBGridEH:TDBGridEh;
begin
&nbsp;&nbsp;//ShowMessage(TMenuItem(TAction(Sender).ActionComponent).GetParentComponent.Name);
&nbsp;&nbsp;if (TAction(Sender).ActionComponent).GetParentComponent is TPopupMenu then
&nbsp;&nbsp;&nbsp;&nbsp;myPopupMenu := (TAction(Sender).ActionComponent).GetParentComponent as TPopupMenu
&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;Exit;

&nbsp;&nbsp;//ShowMessage(MyPopupMenu.PopupComponent.Name);
&nbsp;&nbsp;if (MyPopupMenu.PopupComponent is TDBGridEh) then
&nbsp;&nbsp;begin
&nbsp;&nbsp;&nbsp;&nbsp;MyDBGridEH := TDBGridEh(MyPopupMenu.PopupComponent);
&nbsp;&nbsp;&nbsp;&nbsp;MyDBGridEH.SetFocus;
&nbsp;&nbsp;&nbsp;&nbsp;keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //按下Ctrl键
&nbsp;&nbsp;&nbsp;&nbsp;keybd_event(ord('F'), MapVirtualKey(ord('F'), 0), 0, 0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//按下F键
&nbsp;&nbsp;&nbsp;&nbsp;keybd_event(ord('F'), MapVirtualKey(ord('F'), 0), KEYEVENTF_KEYUP, 0);&nbsp;&nbsp;&nbsp;&nbsp;//放开F键
&nbsp;&nbsp;&nbsp;&nbsp;keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0); //放开Ctrl键
&nbsp;&nbsp;end;
end;</textarea><br/><br/>Tags - <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=keybd_event" rel="tag">keybd event</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=dbgrideh" rel="tag">dbgrideh</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=ctrl_f" rel="tag">ctrl f</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E6%259F%25A5%25E6%2589%25BE" rel="tag">查找</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E7%25BB%2584%25E5%2590%2588%25E9%2594%25AE" rel="tag">组合键</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E6%25B6%2588%25E6%2581%25AF" rel="tag">消息</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E6%258C%2589%25E9%2594%25AE" rel="tag">按键</a>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?271</link>
<title><![CDATA[DBGridEH点击标题自动排序的设定及排序标志相反BUG的修正]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Sat, 24 Oct 2009 03:17:18 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?271</guid> 
<description>
<![CDATA[ 
	<span style="color: #0000FF;"><strong>一、DBGridEH点击标题自动排序的设定</strong></span><br/>①按DataSet源类型的不同，在工程中引用EhLib相应排序单元文件，如uses EhLibAdo，uses EhLibCDS，uses EhLibBDE、uses EhLibDBX等，我一般都会在一个公共文件中进行引用，这样就无须在所有用到DBGridEH的单元中都城加入引用语句了，如在DataModule之类的公共窗体中uses EhLibXXX;一次就行了。<br/>②设置DBGridEH的OptionsEH.dghAutoSortMarking := True;如果希望多列排序还可设置OptionsEH.dghMultiSortMarking := True;<br/><a href="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=48" target="_blank"><img src="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=48" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>③如果你的DataSet源是TClientDataSet，且只想对已下载到本地的数据进行排序的话，则请设置DBGridEH的SortLocal := True;<br/><a href="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=49" target="_blank"><img src="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=49" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>④设置DBGridEH中所有希望进行排序的列标题的按钮属性为True，即Columns[i].Title.TitleButton := True;字段类型为LookUp类型或计算字段不能排序，故这类字段 列的TitleButton应设置为False，否则点击标题进行排序时会发生异常。<br/><a href="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=50" target="_blank"><img src="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=50" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>至此，点击DBGridEH标题就可以自动排序了，多列排序需按下Ctrl键。<br/>但是有一个小 BUG（我使用的是EhLibCDS），那就是标题列上的排序图标和排序结果不相符，当升序排列时出现的不是向上的箭头，而是向下的箭头，降序则相反。这应该是EhLib中的设置标题重画方法时赋反了一个逻辑标志值。如何修正它呢？<br/><span style="color: #0000FF;"><strong>二、排序标志相反BUG的修正</strong></span><br/>方法一、最佳方法，找到问题源，修正它！可惜，我没找到。<br/>方法二、修改DBGridEH.res，把两个bmp图标文件对换一下，有点麻烦。<br/>方法三、大致翻阅一下DBGridEH源码，发现排序图标文件标志是由两个常量定义的，<br/>const <br/>...<br/>&nbsp;&nbsp;bmSmDown = 'DBSMDOWNEH';&nbsp;&nbsp;<br/>&nbsp;&nbsp;bmSmUp = 'DBSMUPEH'; <br/>...<br/>这就好办了，在此对换一下，又安全又快捷<br/>&nbsp;&nbsp;//bmSmDown = 'DBSMDOWNEH';&nbsp;&nbsp;//这是原始内容<br/>&nbsp;&nbsp;//bmSmUp = 'DBSMUPEH';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这是原始内容<br/>&nbsp;&nbsp;bmSmDown = 'DBSMUPEH';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Modified by 小宇飞刀 2009-10-24 10:31:26<br/>&nbsp;&nbsp;bmSmUp = 'DBSMDOWNEH';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Modified by 小宇飞刀 2009-10-24 10:31:26<br/><br/>至此，一切OK！<br/><a href="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=47" target="_blank"><img src="http://vir.jxstnu.edu.cn/xieyunc/attachment.php?fid=47" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a>&nbsp;&nbsp;<br/>Tags - <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=dbgrideh" rel="tag">dbgrideh</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E8%2587%25AA%25E5%258A%25A8%25E6%258E%2592%25E5%25BA%258F" rel="tag">自动排序</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E5%259B%25BE%25E6%25A0%2587" rel="tag">图标</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=bug" rel="tag">bug</a>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?270</link>
<title><![CDATA[使用Web Service 下载档案时如何显示进度条]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[Delphi]]></category>
<pubDate>Wed, 23 Sep 2009 11:48:19 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?270</guid> 
<description>
<![CDATA[ 
	<br/>可使用HTTPRIO.HTTPWebNode.OnPostingData 与 OnReceivingData 两个事件。<br/><textarea name="code" class="delphi" rows="15" cols="100">procedure TForm1.HTTPRIO1HTTPWebNode1PostingData(Sent, Total: Integer);
begin
&nbsp;&nbsp;Gauge1.MinValue:=0;
&nbsp;&nbsp;Gauge1.MaxValue:=Total;
&nbsp;&nbsp;Gauge1.Progress:=Sent;
&nbsp;&nbsp;Refresh;;
end;

procedure TForm1.HTTPRIO1HTTPWebNode1ReceivingData(Read, Total: Integer);
begin
&nbsp;&nbsp;Gauge2.MinValue:=0;
&nbsp;&nbsp;Gauge2.MaxValue:=Total;
&nbsp;&nbsp;Gauge2.Progress:=Read;
&nbsp;&nbsp;Refresh;;
end;
</textarea><br/>默认是32K为一个单位<br/>Tags - <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=web" rel="tag">web</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=service" rel="tag">service</a> , <a href="http://vir.jxstnu.edu.cn/xieyunc/tag.php?tag=%25E8%25BF%259B%25E5%25BA%25A6%25E6%259D%25A1" rel="tag">进度条</a>
]]>
</description>
</item><item>
<link>http://vir.jxstnu.edu.cn/xieyunc/read.php?269</link>
<title><![CDATA[验车宝典，作个记号先！]]></title> 
<author>xieyunc &lt;xieyunc@jxstnu.cn&gt;</author>
<category><![CDATA[其他分类]]></category>
<pubDate>Thu, 17 Sep 2009 14:47:36 +0000</pubDate> 
<guid>http://vir.jxstnu.edu.cn/xieyunc/read.php?269</guid> 
<description>
<![CDATA[ 
	验车宝典[转]<br/>我在我的提车作业<a href="http://club.autohome.com.cn/bbs/thread-c-799-4312356-1.html" target="_blank">http://club.autohome.com.cn/bbs/thread-c-799-4312356-1.html</a>中提到用到了提车验车手册，这是去年在远景的论坛里收集到的。在回贴中大家都希望晚清把验车手册给发出来。在此我把验车手册发出来，供大家参考。希望大家都提到自己中意的车车。<br/><br/>１、确认新车<br/><br/>□出厂日期（应在一个月内生产)<br/>□车架号:<br/>□发动机号:<br/>□产品合格证号码与车架号，发动机号一致<br/>□产品说明书<br/>□车型、功率、排量、坐椅数量、发动机型号等均要求说明书与实物一致<br/>□总里程数<50km<br/>□轮胎磨损<br/>&nbsp;&nbsp;□轮胎花纹接口处的细柱型胶条，这种细胶条跑上50公里就没了，200公里花纹中间的胶刺也没了<br/>&nbsp;&nbsp;□刹车盘磨损：如前刹车盘已磨出明显沟槽印，不能要<br/>□保修单<br/>&nbsp;&nbsp;□ 4S的印章<br/>&nbsp;&nbsp;□各项信息填写是否正确<br/> <br/> 2、动力、传动及制动<br/>□检查漏油：看地上有没有机油点、底盘有没有油污（这些部位可从狭逢处看到，标准是不能有湿润的沾灰现象，地面无油迹）。<br/>&nbsp;&nbsp;□发动机上盖<br/>&nbsp;&nbsp;□油底壳<br/>&nbsp;&nbsp;□左传动轴皮套处<br/>&nbsp;&nbsp;□右传动轴皮套处<br/>&nbsp;&nbsp;□飞轮盘旁护盖下部<br/>□水箱冷却液液面满，水管无泄漏<br/>□电瓶<br/>&nbsp;&nbsp;□液面高度是否合适<br/>&nbsp;&nbsp;□电瓶接头有否腐蚀<br/>&nbsp;&nbsp;□电瓶小窗是否绿色<br/>&nbsp;&nbsp;□蓄电池连线是否紧固<br/>&nbsp;&nbsp;□其它各处线头联接是否有晃动<br/>□看发电机、压缩机的皮带松紧度<br/>□第一次点火后不要轰油门，看会不会自动熄火<br/>□启动发动机，转速表应打到1000转以上，再平顺滑落至750转左右<br/>□怠速时发动机声音应均匀，平稳，连续，无明显抖动<br/>□慢加油发动机声音无异响，急加油发动机反应准确、迅速、干净<br/>□猛踩猛放油门时声音要和顺，中间不能有杂音<br/>□远听发动机声音：打着两辆车，站在中间位置，感觉声音大而杂的淘汰掉<br/>□试刹车：务必细心体会刹车踏板踩下去的深浅变化！要求每次深浅相同，但是不能触底。另外，踩死刹车踏板一会，应该感觉它不会继续下沉，否则就是漏刹车油<br/>□排气管排气连续，掌心潮湿但没有机油味<br/>□试车以后，打开发动机罩盖，看看里面是不是烟雾腾腾<br/>□拉出机油尺看机油颜色：冷车点火三分钟后熄火(第一次点火后不要轰油门，看会不会自动熄火)，拉出油尺，液面高度不对的淘汰，油黑的淘汰<br/>3、查外观和门窗<br/><br/>□ 车漆检查：顺光、逆光检查车漆。&nbsp;&nbsp; □ 无划痕<br/>&nbsp;&nbsp;□ 无小坑<br/>&nbsp;&nbsp;□ 无异色<br/>&nbsp;&nbsp;□ 无斑点<br/>□ 表面检查：表面平整，光亮，缝隙要小，车面要平<br/>&nbsp;&nbsp;□ 引擎盖<br/>&nbsp;&nbsp;□ 车门<br/>&nbsp;&nbsp;□ 保险杠<br/>&nbsp;&nbsp;□ 后备箱<br/>□ 缝隙检查：缝隙要小、均匀、对称<br/>&nbsp;&nbsp;□ 门缝<br/>&nbsp;&nbsp;□ 前车灯<br/>&nbsp;&nbsp;□ 后车灯<br/>&nbsp;&nbsp;□ 前大灯与前盖缝隙<br/>□ 扳金痕迹（褶皱）<br/>&nbsp;&nbsp;□ 发动机舱左前端<br/>&nbsp;&nbsp;□ 发动机舱右前端<br/>&nbsp;&nbsp;□ 大灯部位金属板<br/>&nbsp;&nbsp;□ 尾箱后端左右金属板<br/>□ 车门：<br/>&nbsp;&nbsp;□ 分别打开左右两个前门门锁，看按钮是否过紧、不能转动<br/>&nbsp;&nbsp;□ 看车门踏板和门框、水槽的外观<br/>&nbsp;&nbsp;□ 车门开启是否灵活，开门锁时不应太吃力，门轴转动时不应有杂音<br/>&nbsp;&nbsp;□ 关门是否能一步到位，4个门都要试<br/>&nbsp;&nbsp;□ 检查4个门的内外拉手(共8个)，都应该顺滑、干脆且无杂音<br/>&nbsp;&nbsp;□ 车门密封胶条严不严，洗车时漏不漏水<br/>□ 玻璃<br/>&nbsp;&nbsp;□ 原配(看玻璃下脚的标记)<br/>&nbsp;&nbsp;□ 各块玻璃平整、透亮<br/>　　□ 前风挡必须特别平整，从各个角度看外部景物都无形变<br/>　　□ 用手轻敲后风挡和车门玻璃，不应炸裂<br/>□ 后备箱<br/>&nbsp;&nbsp;□ 箱盖密封严不严<br/>&nbsp;&nbsp;□ 后备箱下面的缝隙是否均匀，不均匀会使其受力不均，卡口易裂<br/>□ 减震：<br/>&nbsp;&nbsp;□ 按住四个轮子上方的车身向下压几下，看四个角的反弹能力。可用手大力按动车身一角，松开后，看其弹动次数，在2～3次之间为好<br/>&nbsp;&nbsp;□ 把车停住按一下车前角，如果减震会响可能是弹簧上边的胶垫坏了<br/>□ 轮胎<br/>&nbsp;&nbsp;□ 检查4个轮胎和备胎的胎压、胎纹，螺栓和螺帽的扭力，气帽嘴在否，轮毂饰盖安装到位<br/>&nbsp;&nbsp;□ 备胎与4个轮胎规格应该一致<br/>□ 遥控器<br/>&nbsp;&nbsp;□ 开锁<br/>&nbsp;&nbsp;□ 闭锁<br/>&nbsp;&nbsp;□ 车辆照明<br/>&nbsp;&nbsp;□ 遥控关窗<br/>□ 防盗<br/>&nbsp;&nbsp;□ 起作用时防盗报警器的红灯应该闪烁<br/>&nbsp;&nbsp;□ 起作用时，不用遥控器而用钥匙强行打开车门，听报警器响不响<br/><br/>4、车内部分和电器设备<br/><br/>□ 门窗:四个电动窗的升降，反复多次试<br/>&nbsp;&nbsp;□ 升降顺畅<br/>&nbsp;&nbsp;□ 玻璃到底后位置正不正，是否冲底<br/>&nbsp;&nbsp;□ 左前窗玻璃能不能一次升到顶，玻璃与胶条是否较劲<br/>&nbsp;&nbsp;□ 左前窗在降下后再升起是否困难，有无令人牙酸的摩擦声<br/>□ 试中控门锁、儿童锁是否起作用，门锁对位准确否<br/>□ 调节方向盘上下角度<br/>□ 晃动助力转向方向盘，上下不应有间隙，左右自由行程不应过大<br/>□ 打开空调，试A/C开关，冷热都要试，时间长些<br/>□ 试空调的冷度和热度以及风量开关<br/>&nbsp;&nbsp;□ 试空调内循环，看各风口是否有热气漏进来(不应有)<br/>&nbsp;&nbsp;□ 空调风机运转是否正常<br/>□ 按汽车喇叭，听鸣笛声，应为高低双音<br/>□ 试雨刷：<br/>□ 会不会喷水<br/>□ 喷水角度对不对<br/>□ 测不同档的速度是否明显、顺滑，是否刮干净，噪音如何<br/>□ 雨刷能不能回到底<br/>□ 眼镜盒打开后能否关到位<br/>□ 浏览说明书，对着说明书详细检查各项功能、各种按钮、开关是否都有效<br/>□ 查看点烟器工作是否正常<br/>□ 灯光检查<br/>□ 车门打开时，迎宾灯亮不亮<br/>&nbsp;&nbsp;□ 前后阅读灯<br/>&nbsp;&nbsp;□ 开门灯<br/>&nbsp;&nbsp;□ 前门槛灯<br/>&nbsp;&nbsp;□ 行李箱灯(车内灯可能虚接，有时不亮)<br/>□ 指示灯<br/>□ 驻车警告灯<br/>□ 安全带指示灯<br/>□ 后除霜<br/>□ 其它告警指示灯是否正常<br/>□ 调节仪表盘夜光灯、指示灯亮度以及大灯俯仰角度<br/>□ 查看真皮座椅有无开裂(小口子)<br/>□ 试验安全带功能<br/>□ 两侧电动后视镜：各个方向调整测试、电动折叠测试<br/>□ 试内后视镜、遮阳挡板及开关<br/>□ 测试后窗电加热除霜功能<br/>□ 熄火后试听CD音响和收音机功能：<br/>□ 换碟<br/>□ AM/FM<br/>□ 选台<br/>□ 音量<br/>□ 点火后音响有无高频交流声(熄火时没有的)<br/>□ 看档位显示是否正确，测里程复位功能<br/>□ 查看仪表盘上时钟是否正确，学习怎样调节之<br/>□ 车内开启加油口、后备箱和发动机舱盖<br/>□ 在平地上测试手刹功能，挂N档推车(先踩住脚刹看是否溜车!)<br/>□ 检查车内饰板、拉手、手套箱和带锁的杂物箱<br/>□ 内饰件是否过于粗糙，各组件安装是否紧固、有无松动<br/>□ 看车内地毯下面有没有水。如果有，就是车的封闭性不好或者有其它问题<br/><br/>5、车外部灯光<br/><br/>□ 大灯(远光、近光)，左右前照灯灯光强度、角度是否一致<br/>□ 方向灯、故障警告灯：6个都看(前、后、左、右、两侧后视镜)<br/>□ 前、后雾灯<br/>□ 刹车灯，包括高位刹车灯<br/>□ 倒车灯<br/>6、试驾并接车<br/><br/>□ 调好驾驶员座椅和三个后视镜<br/>□ 试刹车：仔细体会刹车踏板踩下去的深浅变化和制动力大小的关系<br/>□ 刹车踏板踩下时有无吱吱声<br/>□ 油门：提速、降速都可由油门平顺控制；油门踏板跟脚，反应灵敏；腿脚自然舒适<br/>□ 在平直的路上松开方向盘，车应该直行；拐弯以后松开方向盘，车应该自己跑回直线；打尽方向，听听有无异响<br/>□ 转向灯应能自动回位<br/>□ 遇颠簸时车的前后减震会发出类似硬塑料摩擦的声音(此声不应有但却普遍存在)<br/><br/>□ 检查随车配件是否齐全，特别是产品说明书、千斤顶、工具包、灭火器、三角警示牌<br/>□ 查灭火器生产日期和有效日期<br/>□ 三角警示牌能否正常打开<br/>□ 试驾一段路程再上快速主路，关键是要先熟悉一下车性（头500公里以内车速应控制在80km/h以下，发动机转速不要超过2500rpm）<br/><br/> <br/><br/>
]]>
</description>
</item>
</channel>
</rss>