<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[21 工作室 - delphi]]></title>
<link>http://www.is21.cn/</link>
<description><![CDATA[本站承接网页制作、软件项目开发、代写代码等业务，我们将和您真诚合作，以最低的价格提供最优越的服务。13488846575   联系人:潘劲]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[lianxiangpanjin@163.com(潘劲)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>21 工作室</title> 
	<url>http://www.is21.cn/images/logos.gif</url> 
	<link>http://www.is21.cn/</link> 
	<description>21 工作室</description> 
</image>

			<item>
			<link>http://www.is21.cn/default.asp?id=245</link>
			<title><![CDATA[使用Delphi 7 编写一个IE右键菜单项目：自动保存图片]]></title>
			<author>lianxiangpanjin@163.com(admin)</author>
			<category><![CDATA[delphi]]></category>
			<pubDate>Tue,01 Apr 2008 17:19:26 +0800</pubDate>
			<guid>http://www.is21.cn/default.asp?id=245</guid>	
		<description><![CDATA[引言：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无论是IE中的“图片另存为”还是QQ图片工具条，保存图片的时候都需要选择路径，文件名，然后再按保存。如果是一两张图片这样保存自然无所谓，但是如果长期需要做图片收集还是自己DIY一个菜单吧。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果你只是想了解用Delphi编写ActiveX或者IE&nbsp;右键菜单的相关信息，注意每一步下面的Addition，那里有相关主题的更多信息。<br/><br/>正文：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个菜单实现的功能是：浏览网页时在图片上单击右键，弹出菜单中比平时多一项“自动保存图片”，单击后自动将图片保存到C:\Images\下面，文件名为默认的文件名，如果遇到重名情况，自动在原文件名后添加几个随机生成的字母，然后自动保存。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现方法简介：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IE右键菜单项&nbsp;&nbsp;&nbsp;&nbsp;----------&nbsp;修改注册表，添加菜单入口<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;响应菜单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----------&nbsp;VBScript脚本调用ActiveX&nbsp;Object<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主体：保存文件&nbsp;----------&nbsp;Delphi&nbsp;ActiveX&nbsp;Library&nbsp;&amp;&nbsp;Automation&nbsp;Object<br/><br/><br/>Step&nbsp;by&nbsp;Step：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.添加IE右键菜单项<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开始菜单，运行，输入regedit，回车，依次展开<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HKEY_CURRENT_USER\Software\Microsoft\Internet&nbsp;Explorer\MenuExt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加一个子键：自动保存图片&amp;Z，修改默认值为：C:\Program&nbsp;Files\PicSaver\PicSaver.htm&nbsp;(这是稍后我们将要编写的脚本)，在新建的子键下添加一个REG_DWORD类型的项Contexts，修改值为2。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭注册表以保存<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此时，新打开的IE窗口在图片上单击右键，已经出现自动保存图片菜单。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Addition:一个子键对应一个菜单项，默认值对应单击菜单时需要激活的脚本文件，Contexts是一个可选项。设置为不同的值表示仅在特定内容上单击右键才会出现这个项目。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;IE&nbsp;6.0典型值：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---------------------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x1&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Images&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x2&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x4&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tables&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x8&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;sel&#101;ction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x10&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Anchor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x20&nbsp;<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加菜单项更多信息参见MSDN：<a href="http://msdn2.microsoft.com/en-us/library/Aa753589.aspx" target="_blank">http://msdn2.microsoft.com/en-us/library/Aa753589.aspx</a><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.编写VBScript脚本<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;新建一个空文件，输入以下内容：<br/><br/>&lt;script&nbsp;language=&#34;VBScript&#34;&gt;<br/>set&nbsp;srcEvent&nbsp;=&nbsp;external.menuArguments.event<br/>set&nbsp;img&nbsp;=&nbsp;external.menuArguments.document.elementFromPoint(srcEvent.clientX,&nbsp;srcEvent.clientY)<br/>set&nbsp;ps&nbsp;=&nbsp;Cr&#101;ateObject(&#34;PicSaver.AutoSave&#34;)<br/>call&nbsp;ps.SaveImage(img.href)<br/>set&nbsp;ps&nbsp;=&nbsp;nothing<br/>&lt;/script&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存为C:\Program&nbsp;Files\PicSaver\PicSaver.htm<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Addition:&nbsp;这个脚本参考了FlashGet下载软件的脚本。其中external.menuArguments可以获得对应的页面内容，elementFromPoint方法返回一个object（事实上就是那个单击的图片），img.href属性取得object对应的URL地址。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PicSaver.AutoSave是下面将要编写的ActiveX&nbsp;(Automation&nbsp;Object)，调用了对象的SaveImage方法。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;脚本中使用HTML&nbsp;的参考资料比较少，只有MSDN的内容<br/><br/><a href="http://msdn2.microsoft.com/en-us/library/ms533050.aspx" target="_blank">http://msdn2.microsoft.com/en-us/library/ms533050.aspx</a><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个信息是很全的，但是检索很不方便。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;脚本中使用Automation&nbsp;Object的方法与使用Scripting.FileSystemObject的方法完全相同，创建对象，访问属性(properties)和方法(methods)都很简单。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scripting.FileSystemObject是内置的处理文件的object，Scripting.FileSystemObject的使用方法见：<a href="http://msdn2.microsoft.com/en-us/library/6kxy1a51.aspx" target="_blank">http://msdn2.microsoft.com/en-us/library/6kxy1a51.aspx</a>，一般的VBScript教程里面都有详细说明。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.编写Automation&nbsp;Object:&nbsp;PicSaver.AutoSave<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是最重要的部分。网上范例用.Net来编写的比较多，本例中我使用Delphi来编写。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择用Delphi而不用C++,&nbsp;.Net的原因是：我现在用的机器上没有Virtual&nbsp;Studio，只有Delphi&nbsp;7。寒。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进入正题，先打开Delphi7，File-&gt;close&nbsp;all，工具栏，New&nbsp;Item，选择ActiveX-&gt;ActiveX&nbsp;Library，Save，Project&nbsp;name为PicSaver。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;New&nbsp;Item，选择ActiveX-&gt;Automation&nbsp;Object，CoClass&nbsp;Name为AutoSave，其余项目保留默认值。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;弹出PicSaver.tlb窗口(如果没有看到，View-&gt;Type&nbsp;Library可以打开这个窗口)，Save，Unit&nbsp;name为AutoSave。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在左侧可以看到IAutoSave(接口)，右键单击，选择New-&gt;Method，取名字为SaveImage，单击Parameters选项卡修改参数，Name:urlstr，Type:BSTR,&nbsp;单击窗口上的Refresh&nbsp;Implementation。Save。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭PicSaver.tlb窗口，弹出代码编辑器。可以看到Delphi已经自动生成了刚才定义的方法：<br/>procedure&nbsp;SaveImage(const&nbsp;urlstr:&nbsp;WideString);&nbsp;safecall;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来是Coding，没有太多可说的，附上我的源代码。<br/><br/>&lt;---------------------------------Delphi&nbsp;Code----------------------------------&gt;<br/>unit&nbsp;AutoSave;<br/><br/>{$WARN&nbsp;SYMBOL_PLATFORM&nbsp;OFF}<br/><br/>interface<br/><br/>uses<br/>&nbsp;&nbsp;&nbsp;ComObj,&nbsp;ActiveX,&nbsp;PicSaver_TLB,&nbsp;StdVcl;<br/><br/>type<br/>&nbsp;&nbsp;&nbsp;TAutoSave&nbsp;=&nbsp;class(TAutoObject,&nbsp;IAutoSave)<br/>&nbsp;&nbsp;&nbsp;protected<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;SaveImage(const&nbsp;urlstr:&nbsp;WideString);&nbsp;safecall;<br/><br/>&nbsp;&nbsp;&nbsp;end;<br/><br/>implementation<br/><br/>uses&nbsp;ComServ,&nbsp;UrlMon,&nbsp;SysUtils,&nbsp;Dialogs,&nbsp;StrUtils;<br/><br/>function&nbsp;DownloadFile(SourceFile,&nbsp;DestFile:&nbsp;string):&nbsp;Boolean;<br/>begin<br/>&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;UrlDownloadToFile(nil,&nbsp;PChar(SourceFile),&nbsp;PChar(DestFile),&nbsp;0,&nbsp;nil)&nbsp;=&nbsp;0;<br/>&nbsp;&nbsp;&nbsp;except<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;False;<br/>&nbsp;&nbsp;&nbsp;end;<br/>end;<br/><br/>function&nbsp;rPos(const&nbsp;substr,&nbsp;str:&nbsp;AnsiString):&nbsp;Integer;<br/>begin<br/>&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;length(str)&nbsp;-&nbsp;pos(AnsiReverseString(substr),&nbsp;AnsiReverseString(str))&nbsp;+&nbsp;1;<br/>end;<br/><br/>function&nbsp;rename(filename:&nbsp;string):&nbsp;string;<br/>var<br/>&nbsp;&nbsp;&nbsp;i,&nbsp;p:&nbsp;integer;<br/>&nbsp;&nbsp;&nbsp;randomchar:&nbsp;char;<br/>&nbsp;&nbsp;&nbsp;name,&nbsp;ext:&nbsp;string;<br/>begin<br/>&nbsp;&nbsp;&nbsp;p&nbsp;:=&nbsp;rpos(&#39;.&#39;,&nbsp;filename);<br/>&nbsp;&nbsp;&nbsp;name&nbsp;:=&nbsp;copy(filename,&nbsp;1,&nbsp;p&nbsp;-&nbsp;1);<br/>&nbsp;&nbsp;&nbsp;ext&nbsp;:=&nbsp;copy(filename,&nbsp;p&nbsp;+&nbsp;1,&nbsp;length(filename)&nbsp;-&nbsp;p);<br/>&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;1&nbsp;to&nbsp;5&nbsp;do<br/>&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;randomchar&nbsp;:=&nbsp;Chr(random(300)&nbsp;mod&nbsp;26&nbsp;+&nbsp;65);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;result&nbsp;+&nbsp;randomchar;<br/>&nbsp;&nbsp;&nbsp;end;<br/>&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;result&nbsp;+&nbsp;&#39;.&#39;&nbsp;+&nbsp;ext;<br/>end;<br/><br/>procedure&nbsp;TAutoSave.SaveImage(const&nbsp;urlstr:&nbsp;WideString);<br/>const<br/>&nbsp;&nbsp;&nbsp;PATH&nbsp;=&nbsp;&#39;C:\Images&#39;;<br/>var<br/>&nbsp;&nbsp;&nbsp;url,&nbsp;DestFile,&nbsp;name,&nbsp;rname:&nbsp;string;<br/>&nbsp;&nbsp;&nbsp;len,&nbsp;p:&nbsp;integer;<br/>begin<br/>&nbsp;&nbsp;&nbsp;url&nbsp;:=&nbsp;urlstr;<br/>&nbsp;&nbsp;&nbsp;//parse&nbsp;file&nbsp;name&nbsp;and&nbsp;get&nbsp;destfile&nbsp;name<br/>&nbsp;&nbsp;&nbsp;len&nbsp;:=&nbsp;length(url);<br/>&nbsp;&nbsp;&nbsp;p&nbsp;:=&nbsp;rpos(&#39;/&#39;,&nbsp;url);<br/>&nbsp;&nbsp;&nbsp;name&nbsp;:=&nbsp;copy(url,&nbsp;p&nbsp;+&nbsp;1,&nbsp;len&nbsp;-&nbsp;p);<br/>&nbsp;&nbsp;&nbsp;rname&nbsp;:=&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;while&nbsp;fileexists(PATH&nbsp;+&nbsp;rname)&nbsp;do<br/>&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rname&nbsp;:=&nbsp;rename(name);<br/>&nbsp;&nbsp;&nbsp;end;<br/>&nbsp;&nbsp;&nbsp;name&nbsp;:=&nbsp;rname;<br/>&nbsp;&nbsp;&nbsp;DestFile&nbsp;:=&nbsp;PATH&nbsp;+&nbsp;name;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;if&nbsp;DownloadFile(url,&nbsp;DestFile)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ShowMessage(&#39;保存成功!&#39;);<br/>&nbsp;&nbsp;&nbsp;end<br/>&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&#39;！！！！保存不成功！！！！&#39;);<br/>&nbsp;&nbsp;&nbsp;end;<br/>end;<br/><br/>initialization<br/>&nbsp;&nbsp;&nbsp;TAutoObjectFactory.Cr&#101;ate(ComServer,&nbsp;TAutoSave,&nbsp;Class_AutoSave,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ciMultiInstance,&nbsp;tmApartment);<br/>end.<br/><br/>&lt;-----------------------------End&nbsp;of&nbsp;Delphi&nbsp;Code--------------------------------&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save,&nbsp;Compile,&nbsp;Build。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;菜单：Run-&gt;Register&nbsp;ActiveX&nbsp;Server，弹出注册成功的提示。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK，整个工程完成。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Addition:&nbsp;Delphi作为一款强大的IDE早已被众多程序员肯定。但是这次是我使用Delphi的最糟糕的经历。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为“编写一个VBScript脚本里可以调用的object”相关的文档太难找了，开始的时候我选择了COM&nbsp;Object，编写一点问题都没有。但是VBScript&nbsp;Cr&#101;ateObject之后返回值根本不包含对象的引用。然后看到网上有很多例子都是使用ActiveX&nbsp;Control(控件)，但是Delphi里面都是需要VCL&nbsp;Component来转换或者创建Active&nbsp;Form来实现，但是我需要的功能不是一个可视组件，只是需要一个方法和接口。之后又看到一些软件使用了BHO(Browser&nbsp;Helper&nbsp;Object)，那个可以在页面加载时就开始运行，获取事件响应。BHO&nbsp;也不符合我的要求。COM+好像与服务有关系，没有考虑。剩下的就只有Automation&nbsp;Object了，试一下居然OK了。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;还有值得注意的是字符串参数一定要选BSTR，不能用LPSTR。如果选LPSTR，脚本运行的时候会出错，提示不支持的对象类型。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;结论：右键菜单脚本调用object在Delphi中一定要选择Automation&nbsp;Object<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.由于没有制作Setup安装程式，所以使用上需要注意：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确保C:\Images存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delphi&nbsp;提示ActiveX&nbsp;DLL注册成功<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;脚本文件存在，位置与注册表对应项一致<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.is21.cn/default.asp?id=235</link>
			<title><![CDATA[学习网址]]></title>
			<author>lianxiangpanjin@163.com(admin)</author>
			<category><![CDATA[delphi]]></category>
			<pubDate>Mon,24 Mar 2008 23:44:44 +0800</pubDate>
			<guid>http://www.is21.cn/default.asp?id=235</guid>	
		<description><![CDATA[delphi盒子&nbsp;<a href="http://www.2ccc.com" target="_blank">http://www.2ccc.com</a>&nbsp;<br/>编程论坛<a href="http://www.programbbs.com" target="_blank">http://www.programbbs.com</a>&nbsp;<br/>学delphi网<a href="http://www.xuedelphi.cn" target="_blank">http://www.xuedelphi.cn</a>&nbsp;<br/>大富翁编程网站<a href="http://www.delphibbs.com/" target="_blank">http://www.delphibbs.com/</a>&nbsp;<br/>Delphi&nbsp;K.Top讨论区<a href="http://delphi.ktop.com.tw" target="_blank">http://delphi.ktop.com.tw</a>&nbsp;<br/>delphi&nbsp;窑洞www.51delphi.com&nbsp;<br/><br/>视频学习网址<a href="http://www.51eren.com/" target="_blank">http://www.51eren.com/</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://21hulian.com" target="_blank">http://21hulian.com</a><br/><br/>-----------------------------------------------------------------------------------------------------<br/>黑客新闻&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/news" target="_blank">http://www.anqn.com/news</a><br/>黑客文章&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/article" target="_blank">http://www.anqn.com/article</a><br/>黑客软件&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/soft" target="_blank">http://www.anqn.com/soft</a><br/>黑客动画&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/demo" target="_blank">http://www.anqn.com/demo</a><br/>黑客编程&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/dev" target="_blank">http://www.anqn.com/dev</a><br/>黑客视频&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/video" target="_blank">http://www.anqn.com/video</a><br/>赚钱王道&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/wangzhuan" target="_blank">http://www.anqn.com/wangzhuan</a><br/><br/><br/>DDOS攻防&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/ddos" target="_blank">http://www.anqn.com/ddos</a><br/>脚本注入&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/zhuru" target="_blank">http://www.anqn.com/zhuru</a><br/>加壳脱壳&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/ke" target="_blank">http://www.anqn.com/ke</a><br/>破解&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/creak" target="_blank">http://www.anqn.com/creak</a><br/>QQ&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/qq" target="_blank">http://www.anqn.com/qq</a><br/>灰鸽子&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/huigezi" target="_blank">http://www.anqn.com/huigezi</a><br/>溢出&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/yichu" target="_blank">http://www.anqn.com/yichu</a><br/>提权&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/tiquan" target="_blank">http://www.anqn.com/tiquan</a><br/>3389&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/3389" target="_blank">http://www.anqn.com/3389</a><br/>Arp嗅探&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/arp" target="_blank">http://www.anqn.com/arp</a><br/>Serv-U攻防&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/servu" target="_blank">http://www.anqn.com/servu</a><br/>Sniffer嗅探&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/sniffer" target="_blank">http://www.anqn.com/sniffer</a><br/>专杀工具&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/zhuansha" target="_blank">http://www.anqn.com/zhuansha</a><br/>防火墙&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/fanghuoqiang" target="_blank">http://www.anqn.com/fanghuoqiang</a><br/>杀毒软件&#160;&#160;&#160;&#160;<a href="http://www.anqn.com/shadu" target="_blank">http://www.anqn.com/shadu</a>]]></description>
		</item>
		
			<item>
			<link>http://www.is21.cn/default.asp?id=232</link>
			<title><![CDATA[常用组件的属性]]></title>
			<author>lianxiangpanjin@163.com(admin)</author>
			<category><![CDATA[delphi]]></category>
			<pubDate>Mon,24 Mar 2008 00:33:08 +0800</pubDate>
			<guid>http://www.is21.cn/default.asp?id=232</guid>	
		<description><![CDATA[按钮类组件：<br/>button&nbsp;组件：<br/>CAPTION&nbsp;属性&nbsp;：用于在按钮上显示文本内容<br/>Cancel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;属性：是否设置成默认的取消按钮，当设置为真的时候（true）&nbsp;按ESC触发改按钮的事件！<br/>Default&nbsp;&nbsp;属性：是否设置成默认的确认按钮，当设置为真的时候&nbsp;按ENTER键的时候触发事件<br/>Hint&nbsp;&nbsp;属性：设置当鼠标在按钮上短暂停留是显示的提示内容。<br/>Showhint&nbsp;属性：&nbsp;是否显示提示内容默认为假！<br/><br/><br/>Bitbtn&nbsp;组件<br/>Kind&nbsp;属性：&nbsp;他的值就是位图按钮组件上所显示的图标！<br/>GLYPH&nbsp;属性：&nbsp;用于在位图按钮上显示加载后的位图图形！<br/>Numclyphs&nbsp;属性：用于指定位图按钮上所能使用的位图个数！<br/>Layout&nbsp;&nbsp;&nbsp;&nbsp;属性：&nbsp;用于指定位图在位图组件上的位置！<br/><br/>Speedbutton&nbsp;组件<br/>Flat&nbsp;属性：是否具有OFFICE&nbsp;2000的风格<br/>Groupindex&nbsp;属性：设置分组。<br/>DOWN&nbsp;&nbsp;&nbsp;&nbsp;属性：&nbsp;设置改按钮是否处于按下状态<br/>Allowallup&nbsp;属性：设置同一组的快速按钮是否具有同时弹起的状态。<br/><br/>Radiobutton&nbsp;组件<br/>Checked&nbsp;是否处于选中状态<br/>Alignment&nbsp;用于设置选择框和文字的排列方式！<br/><br/>Checkbox&nbsp;&nbsp;组件<br/>Allowgrayed&nbsp;用来设置当前组件被选种时，是否为变灰状态！<br/>State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置当前复选框的状态。<br/><br/>文本类组件<br/>label&nbsp;组件<br/>Alignment&nbsp;用来设置标签中的文本在水平方向的排列方式！<br/>AUTOSIZE&nbsp;用来设置标签的尺寸大小，是否随CAPTION属性中文字的字体大小而进行自动调节！<br/>Font&nbsp;用来设置显示文字的字体，颜色！<br/>Layout&nbsp;&nbsp;用于设置标签中的文本在垂直方向的排列方式！<br/>WORDWRAP&nbsp;用于设置是否自动换行！<br/><br/><br/>EDIT组件<br/>Charcase&nbsp;用于设置组件中文字的大小写显示方式！<br/>TEXT&nbsp;&nbsp;&nbsp;用于显示编辑框中的文字内容<br/>Modified&nbsp;用来判断edit组件里的文字内容是否被修改过，若为假，就是没有被修改过！<br/>Passwordchar&nbsp;设置显示密码字符！<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.is21.cn/default.asp?id=228</link>
			<title><![CDATA[[delphi]type類型的使用]]></title>
			<author>lianxiangpanjin@163.com(admin)</author>
			<category><![CDATA[delphi]]></category>
			<pubDate>Sun,16 Mar 2008 14:26:53 +0800</pubDate>
			<guid>http://www.is21.cn/default.asp?id=228</guid>	
		<description><![CDATA[以下只是小小結,以后慢慢添加...<br/><br/>1.枚舉類型:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DayOfWeek=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);//變量名=(枚舉列表)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;引用此枚舉類型:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days:DayOfWeek;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也可以直接將類型聲明和變量聲明一起:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days:(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);<br/>2.子界類型:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;子界類型是下列類型中某范圍內的值,即整形,布爾型,字符型或枚舉型.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DayOfWeek=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);//枚舉型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days&nbsp;=&nbsp;Moday..Friday//一個DayOfWeek型的子界.<br/>3集合類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;集合類型是一群具有相同類型的元素的集合,這些類型必須是有限類型,如整形,布爾型,字符型,枚舉型和子界類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set1&nbsp;=&nbsp;Set&nbsp;of&nbsp;&#39;A&#39;..&#39;Z&#39;;<br/><br/>4.數組類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;數組類型是某種數據類型的有序集合.下面代碼聲明了一個Integer型的數組變量:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Int&nbsp;=&nbsp;array[0..15]&nbsp;of&nbsp;integer;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TInt&nbsp;:&nbsp;Int;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;0&nbsp;to&nbsp;5&nbsp;do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TInt&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;//為數組各元素賦初始值為0<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多維數組的定義:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TArr&nbsp;=&nbsp;array[0..1.,0..10]&nbsp;of&nbsp;integer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr&nbsp;:&nbsp;TArr;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c,r&nbsp;:&nbsp;integer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;........<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;c&nbsp;:=&nbsp;0&nbsp;to&nbsp;10&nbsp;do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;r&nbsp;:=&nbsp;0&nbsp;to&nbsp;10&nbsp;do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr[c,r]&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;//為多維數組各元素賦初始值為0<br/>5記錄類型&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;記錄是程序可以成組訪問的一群數據的集合.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TStudent&nbsp;=&nbsp;record&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;:&nbsp;integer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name&nbsp;:&nbsp;String[10];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stu&nbsp;:&nbsp;TStudent;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;........<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;Stu&nbsp;do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;:=&nbsp;1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name&nbsp;:=&nbsp;&#39;yueyun889&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br/>6.指針類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指針是一個表示內存地址的變量.語法如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指針類型標志符=^基類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PInt&nbsp;=&nbsp;^Integer;&nbsp;//定義指針類型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;^&#39;運算符放在數據類型的前面,可以定義該類型的一個指針類型;放在一個指針的後面,可以獲得該指針所指地址空間的內容.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;@&#39;運算符放在變量的前面,獲取的是變量的地址,并可以將地址賦值為相同數據類型的指針.&nbsp;&nbsp;<br/>7.定義類和對象<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;類的定義如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;ClassName&nbsp;=&nbsp;Class(AncestorClass)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MemberList<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上面的ClassName是需要定義的類的名稱,通常是一個以T開頭的標志符.AncestorClass是所繼承的父類的名稱.MemberList是類的成員列表,可以聲明一些變量和對象,或者是過程與函數.<br/><br/><br/>順便記錄下多態性:<br/>&nbsp;&nbsp;&nbsp;&nbsp;在Object&nbsp;Pascal&nbsp;語言中定義的類的方法通常是&#34;靜態&#34;的,也就是在編譯和連接階段就確定了對象方法的調用地址.<br/>&nbsp;&nbsp;&nbsp;&nbsp;在面向對象的程序設計語言中還可以在運行時才確定對象方法的調用地址.這種調用函數的方式就稱為&#34;多態&#34;.<br/>(不是很了解,先記錄下來再說...)<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.is21.cn/default.asp?id=219</link>
			<title><![CDATA[对文本文件操作]]></title>
			<author>lianxiangpanjin@163.com(admin)</author>
			<category><![CDATA[delphi]]></category>
			<pubDate>Fri,14 Mar 2008 16:19:54 +0800</pubDate>
			<guid>http://www.is21.cn/default.asp?id=219</guid>	
		<description><![CDATA[对文本文件进行任何处理前,<br/>1&nbsp;首先要打开此文本文件,声明变量<br/>var<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyTextFile:Textfile<br/>通过此变量来引用一个文本文件<br/><br/>打开一个文本文件需要两步:首先是AssignFile(),它可以将变量与一个文件关联起来.<br/>例:AssignFile(MyTextFile,&#39;MyTextFile.txt&#39;);<br/><br/>2,打开文本文件<br/>&nbsp;&nbsp;&nbsp;(1)rewrite创建&nbsp;(2)reset&nbsp;&nbsp;&nbsp;(3)append]]></description>
		</item>
		
</channel>
</rss>