﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-我的程序驿站-随笔分类-Delphi</title><link>http://www.blogjava.net/zhangsk/category/25458.html</link><description>天下难事必做于易，天下大事必做于细</description><language>zh-cn</language><lastBuildDate>Mon, 03 Sep 2007 13:15:50 GMT</lastBuildDate><pubDate>Mon, 03 Sep 2007 13:15:50 GMT</pubDate><ttl>60</ttl><item><title>函数指针 方法指针</title><link>http://www.blogjava.net/zhangsk/archive/2007/09/03/142356.html</link><dc:creator>张树坤</dc:creator><author>张树坤</author><pubDate>Mon, 03 Sep 2007 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsk/archive/2007/09/03/142356.html</guid><wfw:comment>http://www.blogjava.net/zhangsk/comments/142356.html</wfw:comment><comments>http://www.blogjava.net/zhangsk/archive/2007/09/03/142356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsk/comments/commentRss/142356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsk/services/trackbacks/142356.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">unit&nbsp;Unit1;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">interface</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />uses<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Dialogs,&nbsp;StdCtrls;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />type<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;TEvent&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;procedure&nbsp;()&nbsp;of&nbsp;object;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;TProc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;procedure();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;TForm1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">(TForm)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;btn1:&nbsp;TButton;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;btn1Click(Sender:&nbsp;TObject);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000"><br />
<img id="Codehighlighter1_291_314_Open_Image" onclick="this.style.display='none'; Codehighlighter1_291_314_Open_Text.style.display='none'; Codehighlighter1_291_314_Closed_Image.style.display='inline'; Codehighlighter1_291_314_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_291_314_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_291_314_Closed_Text.style.display='none'; Codehighlighter1_291_314_Open_Image.style.display='inline'; Codehighlighter1_291_314_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_291_314_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_291_314_Open_Text"><span style="color: #000000">{&nbsp;Private&nbsp;declarations&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"><br />
<img id="Codehighlighter1_329_351_Open_Image" onclick="this.style.display='none'; Codehighlighter1_329_351_Open_Text.style.display='none'; Codehighlighter1_329_351_Closed_Image.style.display='inline'; Codehighlighter1_329_351_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_329_351_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_329_351_Closed_Text.style.display='none'; Codehighlighter1_329_351_Open_Image.style.display='inline'; Codehighlighter1_329_351_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_329_351_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_329_351_Open_Text"><span style="color: #000000">{&nbsp;Public&nbsp;declarations&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;end;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />var<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Form1:&nbsp;TForm1;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />implementation<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_399_408_Open_Image" onclick="this.style.display='none'; Codehighlighter1_399_408_Open_Text.style.display='none'; Codehighlighter1_399_408_Closed_Image.style.display='inline'; Codehighlighter1_399_408_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_399_408_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_399_408_Closed_Text.style.display='none'; Codehighlighter1_399_408_Open_Image.style.display='inline'; Codehighlighter1_399_408_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_399_408_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_399_408_Open_Text"><span style="color: #000000">{$R&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">.dfm}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />procedure&nbsp;TForm1.btn1Click(Sender:&nbsp;TObject);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />begin<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;showmessage(</span><span style="color: #000000">'</span><span style="color: #000000">方法指针的长度是:</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">Inttostr(SizeOf(TEvent)));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;showmessage(</span><span style="color: #000000">'</span><span style="color: #000000">函数指针的长度是:</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">Inttostr(SizeOf(TProc)));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />end;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">函数指针是指向函数的32位指针，占4个字节。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">过程的指针结构如下<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;PProc&nbsp;=&nbsp;^TProc;</span><span style="color: #008000">//</span><span style="color: #008000">过程指针<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　TProc&nbsp;=&nbsp;record<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　　Code:&nbsp;Pointer;</span><span style="color: #008000">//</span><span style="color: #008000">指向过程的代码<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　end;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">方法指针是指向一个结构。方法的指针结构如下<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;PMethod&nbsp;=&nbsp;^TMethod;</span><span style="color: #008000">//</span><span style="color: #008000">方法指针<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　TMethod&nbsp;=&nbsp;record<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　　Code:&nbsp;Pointer;</span><span style="color: #008000">//</span><span style="color: #008000">指向方法的代码<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;Data:&nbsp;Pointer;</span><span style="color: #008000">//</span><span style="color: #008000">指向对象的数据<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">　end;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />end.</span></div>
<img src ="http://www.blogjava.net/zhangsk/aggbug/142356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsk/" target="_blank">张树坤</a> 2007-09-03 16:08 <a href="http://www.blogjava.net/zhangsk/archive/2007/09/03/142356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>