<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sunshow Life &#187; Delphi</title>
	<atom:link href="http://blog.sunshow.net/category/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sunshow.net</link>
	<description>回到最初的美好</description>
	<lastBuildDate>Mon, 16 Aug 2010 03:49:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TIdFTP的DirectoryListing使用问题</title>
		<link>http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/</link>
		<comments>http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 03:28:09 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DirectoryListing]]></category>
		<category><![CDATA[TIdFTP]]></category>
		<category><![CDATA[列表]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/469.html</guid>
		<description><![CDATA[IdFTP1.List; ShowMessage(IntToStr(IdFTP1.ListResult.Count)); ShowMessage(IntToStr(IdFTP1.DirectoryListing.Count)); 前者是正确的数值，后者是0。 看了一下网上的代码都是List完了就直接用，DirectoryListing会自动解析ListResult 放狗搜了半天，终于找到原因，原来是Indy10的一个设计上的变化，以下引用官网内容： TIdFTP.DirectoryListing is returning nothing for my FTP server. Why? We restructured the way FTP directory listing is done. The code is now a plug in system with various parsers in their own units which register themselves into a framework. To add support for a particular type of FTP server, [...]]]></description>
			<content:encoded><![CDATA[<p><code>IdFTP1.List;<br />
ShowMessage(IntToStr(IdFTP1.ListResult.Count));<br />
ShowMessage(IntToStr(IdFTP1.DirectoryListing.Count));</code></p>
<p>前者是正确的数值，后者是0。<br />
看了一下网上的代码都是List完了就直接用，DirectoryListing会自动解析ListResult</p>
<p>放狗搜了半天，终于找到原因，原来是Indy10的一个设计上的变化，以下引用官网内容：</p>
<blockquote><p>
TIdFTP.DirectoryListing is returning nothing for my FTP server.  Why?</p>
<p>We restructured the way FTP directory listing is done.  The code is now a plug in system with various parsers in their own units which register themselves into a framework.  To add support for a particular type of FTP server, you simply add the parser unit to one of your program unit's uses clause.  </p>
<p>To add the Unix directory list parser, add IdFTPListParseUnix to your unit's clause.  To add support for Microsoft Windows NT IIS FTP server, add IdFTPListParseWindowsNT to your uses clause.  You can also add many other parsers we include in the Indy packages.  By convention, they are named IdFTPListParser followed by the server type.  You do not need to add IdFTPListParseBase to your uses clause because IdFTP uses that unit.  If you wish to use all of Indy's FTP List parser classes, just add the IdAllFTPListParsers unit to your uses clause.</p>
<p>We admit this new design is not as intuitive as the older one but this has many advantages for us such as:</p>
<p>• The FTP list parsing code is now much easier to maintain than the same code in a non-modular design in one unit which would be at least 150KB total. </p>
<p>• You now can add support for only the FTP servers you want your program support to support. </p>
<p>• You can now write your own custom parser classes and plug those into the standard FTP parsing list framework.
</p></blockquote>
<p>搜了一下IdFTPListParse有关的unit，有一大坨，要写个比较通用的FTP Client估计都得引进去吧……<br />
<a href='http://www.sunshow.net/blog/wp-content/uploads/2007/07/idftplistparse.JPG' title='idftplistparse.JPG'><img src='http://www.sunshow.net/blog/wp-content/uploads/2007/07/idftplistparse.thumbnail.JPG' alt='idftplistparse.JPG' /></a></p>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/delphi/" title="Delphi" rel="tag">Delphi</a>, <a href="http://blog.sunshow.net/tag/directorylisting/" title="DirectoryListing" rel="tag">DirectoryListing</a>, <a href="http://blog.sunshow.net/tag/tidftp/" title="TIdFTP" rel="tag">TIdFTP</a>, <a href="http://blog.sunshow.net/tag/%e5%88%97%e8%a1%a8/" title="列表" rel="tag">列表</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/2007/07/twebbrowser-custom-html/" title="TWebBrowser显示自定义Html内容 (2007-07-02)">TWebBrowser显示自定义Html内容</a> (3)</li>
	<li><a href="http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/" title="Delphi 2007 for Win32企业版安装方法 (2007-05-30)">Delphi 2007 for Win32企业版安装方法</a> (10)</li>
	<li><a href="http://blog.sunshow.net/2009/12/css-sprites-styles-producing-tool/" title="CSS Sprites样式生成工具 (2009-12-14)">CSS Sprites样式生成工具</a> (0)</li>
	<li><a href="http://blog.sunshow.net/2009/01/%e5%a4%a7%e6%9d%82%e7%83%a9actionscript3/" title="大杂烩ActionScript3 (2009-01-17)">大杂烩ActionScript3</a> (0)</li>
	<li><a href="http://blog.sunshow.net/2007/05/usage-of-ttreeview/" title="TTreeView的使用 (2007-05-31)">TTreeView的使用</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows API移动文件</title>
		<link>http://blog.sunshow.net/2007/07/windows-api-move-file/</link>
		<comments>http://blog.sunshow.net/2007/07/windows-api-move-file/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 00:32:55 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[文件]]></category>
		<category><![CDATA[移动]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/468.html</guid>
		<description><![CDATA[function TScanFileThread.MoveFile(FileName: string): Boolean;var&#160; F: TShFileOpStruct;begin&#160; with F do begin&#160;&#160; &#160;Wnd := Handle;&#160;&#160; &#160;wFunc := FO_MOVE;&#160;&#160; &#160;pFrom := PChar(Directory + FileName + #0#0);&#160;&#160; &#160;pTo := PChar(SaveDirectory + FileName + #0#0);&#160;&#160; &#160;fFlags := FOF_RENAMEONCOLLISION or FOF_NOCONFIRMMKDIR;&#160; end;&#160; if ShFileOperation(F) = 0 then begin&#160;&#160; &#160;Result := True;&#160; end&#160; else begin&#160;&#160; &#160;Result := False;&#160; end;end; 一开始pFrom和pTo没有以“#0#0”结尾，结果发现在有的机器上能移动成功，有的机器上SHFileOperation返回1026无法转移，查了一下资料 ShFileOperation中的pFrom和pTo中可以包含多个文件名，文件名之间用 '\0' [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><div class="hl-main">function TScanFileThread.MoveFile(FileName: string): Boolean;<br />var<br />&nbsp; F: TShFileOpStruct;<br />begin<br />&nbsp; with F do begin<br />&nbsp;&nbsp; &nbsp;Wnd := Handle;<br />&nbsp;&nbsp; &nbsp;wFunc := FO_MOVE;<br />&nbsp;&nbsp; &nbsp;pFrom := PChar(Directory + FileName + #0#0);<br />&nbsp;&nbsp; &nbsp;pTo := PChar(SaveDirectory + FileName + #0#0);<br />&nbsp;&nbsp; &nbsp;fFlags := FOF_RENAMEONCOLLISION or FOF_NOCONFIRMMKDIR;<br />&nbsp; end;<br />&nbsp; if ShFileOperation(F) = 0 then begin<br />&nbsp;&nbsp; &nbsp;Result := True;<br />&nbsp; end<br />&nbsp; else begin<br />&nbsp;&nbsp; &nbsp;Result := False;<br />&nbsp; end;<br />end;</div></div>
<p>一开始pFrom和pTo没有以“#0#0”结尾，结果发现在有的机器上能移动成功，有的机器上SHFileOperation返回1026无法转移，查了一下资料</p>
<blockquote><p>ShFileOperation中的pFrom和pTo中可以包含多个文件名，文件名之间用   '\0'   分割，最后以两个\0结束。</p></blockquote>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/api/" title="api" rel="tag">api</a>, <a href="http://blog.sunshow.net/tag/%e6%96%87%e4%bb%b6/" title="文件" rel="tag">文件</a>, <a href="http://blog.sunshow.net/tag/%e7%a7%bb%e5%8a%a8/" title="移动" rel="tag">移动</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/documents/" title="Documents (2006-09-09)">Documents</a> (2)</li>
	<li><a href="http://blog.sunshow.net/2007/04/first-cpp-program/" title="第一个C++程序 (2007-04-12)">第一个C++程序</a> (7)</li>
	<li><a href="http://blog.sunshow.net/2009/06/upload-file-using-curl/" title="Curl上传文件 (2009-06-29)">Curl上传文件</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/07/windows-api-move-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TWebBrowser显示自定义Html内容</title>
		<link>http://blog.sunshow.net/2007/07/twebbrowser-custom-html/</link>
		<comments>http://blog.sunshow.net/2007/07/twebbrowser-custom-html/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 10:45:20 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[TWebBrowser]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/466.html</guid>
		<description><![CDATA[uses &#160; ActiveX, MSHtml; &#160; var &#160; Document: IHtmlDocument2; &#160; V: OleVariant; begin &#160; WebBrowser1.Navigate('about:blank'); &#160; Document := WebBrowser1.Document as IHtmlDocument2; &#160; V := VarArrayCreate([0, 0], varVariant); &#160; V[0] := 'Hello World'; &#160; Document.Write(PSafeArray(TVarData(v).VArray)); end; 标签：Delphi, html, TWebBrowser 相关日志 允许本地文件系统上的 HTML 页访问脚本 (0) TTreeView的使用 (0) TIdFTP的DirectoryListing使用问题 (1) Delphi 2007 for Win32企业版安装方法 (10) 有时候注释也不能乱写 (1)]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">uses</li>
<li>&nbsp; ActiveX, MSHtml;</li>
<li>&nbsp;</li>
<li>var</li>
<li>&nbsp; Document: IHtmlDocument2;</li>
<li>&nbsp; V: OleVariant;</li>
<li>begin</li>
<li>&nbsp; WebBrowser1.Navigate('about:blank');</li>
<li>&nbsp; Document := WebBrowser1.Document as IHtmlDocument2;</li>
<li>&nbsp; V := VarArrayCreate([0, 0], varVariant);</li>
<li>&nbsp; V[0] := 'Hello World';</li>
<li>&nbsp; Document.Write(PSafeArray(TVarData(v).VArray));</li>
<li>end;</li></ol></div>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/delphi/" title="Delphi" rel="tag">Delphi</a>, <a href="http://blog.sunshow.net/tag/html/" title="html" rel="tag">html</a>, <a href="http://blog.sunshow.net/tag/twebbrowser/" title="TWebBrowser" rel="tag">TWebBrowser</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/2009/02/allow-local-html-visit-js/" title="允许本地文件系统上的 HTML 页访问脚本 (2009-02-21)">允许本地文件系统上的 HTML 页访问脚本</a> (0)</li>
	<li><a href="http://blog.sunshow.net/2007/05/usage-of-ttreeview/" title="TTreeView的使用 (2007-05-31)">TTreeView的使用</a> (0)</li>
	<li><a href="http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/" title="TIdFTP的DirectoryListing使用问题 (2007-07-06)">TIdFTP的DirectoryListing使用问题</a> (1)</li>
	<li><a href="http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/" title="Delphi 2007 for Win32企业版安装方法 (2007-05-30)">Delphi 2007 for Win32企业版安装方法</a> (10)</li>
	<li><a href="http://blog.sunshow.net/2009/02/ie-6-comment-problem/" title="有时候注释也不能乱写 (2009-02-21)">有时候注释也不能乱写</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/07/twebbrowser-custom-html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ASQLite3导致的日期问题</title>
		<link>http://blog.sunshow.net/2007/06/asqlite3%e5%af%bc%e8%87%b4%e7%9a%84%e6%97%a5%e6%9c%9f%e9%97%ae%e9%a2%98/</link>
		<comments>http://blog.sunshow.net/2007/06/asqlite3%e5%af%bc%e8%87%b4%e7%9a%84%e6%97%a5%e6%9c%9f%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 08:43:31 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[日期]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/462.html</guid>
		<description><![CDATA[按照yyyy-m-d的方式插入时候，也就是个位数的月份不补零，插入正确，读取的时候直接报错或者直接是1899的默认日期了 按照yyyy-mm-dd的方式则插入读取都正常 因为用sqlite自己的命令行读取操作两种方式都没有问题，所以只能怀疑是ASQLite3封装的有问题了，lol 标签：SQLite, 日期 相关日志 看上去不错的日期控件 (1)]]></description>
			<content:encoded><![CDATA[<p>按照yyyy-m-d的方式插入时候，也就是个位数的月份不补零，插入正确，读取的时候直接报错或者直接是1899的默认日期了<br />
按照yyyy-mm-dd的方式则插入读取都正常</p>
<p>因为用sqlite自己的命令行读取操作两种方式都没有问题，所以只能怀疑是ASQLite3封装的有问题了，lol</p>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/sqlite/" title="SQLite" rel="tag">SQLite</a>, <a href="http://blog.sunshow.net/tag/%e6%97%a5%e6%9c%9f/" title="日期" rel="tag">日期</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/2008/11/my97-datepicker/" title="看上去不错的日期控件 (2008-11-25)">看上去不错的日期控件</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/06/asqlite3%e5%af%bc%e8%87%b4%e7%9a%84%e6%97%a5%e6%9c%9f%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TTreeView的使用</title>
		<link>http://blog.sunshow.net/2007/05/usage-of-ttreeview/</link>
		<comments>http://blog.sunshow.net/2007/05/usage-of-ttreeview/#comments</comments>
		<pubDate>Thu, 31 May 2007 11:39:38 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[TTreeNode]]></category>
		<category><![CDATA[TTreeView]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/449.html</guid>
		<description><![CDATA[先说一下我要达到的目的，一个Form分成两个Panel，左边放置TTreeView，右边根据TTreeView的不同选择切换不同的Frame或Form。 首先定义一个数据结构来保存每一个TTreeNode的数据，可以根据需要放更多的数据进去： unit TreeNodeDataUnit; interface uses Classes; type TreeNodeData = Record id: Int64; InstanceClass: TComponentClass; end; implementation end. 其中InstanceClass字段用来保存每个TTreeNode所对应的Frame或Form。 以如下定义为例： type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; TreeView1: TTreeView; procedure FormCreate(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); private { Private declarations } public { Public declarations } end; 开始创建TTreeView，在Form的OnCreate中创建： procedure TForm1.FormCreate(Sender: TObject); var items: [...]]]></description>
			<content:encoded><![CDATA[<p>先说一下我要达到的目的，一个Form分成两个Panel，左边放置TTreeView，右边根据TTreeView的不同选择切换不同的Frame或Form。</p>
<p>首先定义一个数据结构来保存每一个TTreeNode的数据，可以根据需要放更多的数据进去：</p>
<pre><code class="delphi">unit TreeNodeDataUnit;

interface

uses
  Classes;

type
  TreeNodeData = Record
    id: Int64;
    InstanceClass: TComponentClass;
  end;

implementation

end.</code></pre>
<p>其中InstanceClass字段用来保存每个TTreeNode所对应的Frame或Form。</p>
<p>以如下定义为例：</p>
<pre><code class="delphi">type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    TreeView1: TTreeView;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;</code></pre>
<p>开始创建TTreeView，在Form的OnCreate中创建：</p>
<pre><code class="delphi">procedure TForm1.FormCreate(Sender: TObject);
var
  items: TTreeNodes;
  mainNode, subNode: TTreeNode;
  nodeData: ^TreeNodeData;
begin

  items := TreeView1.Items;

  mainNode := items.Add(nil, 'Root');
  New(nodeData);
  nodeData^.id := 100;
  mainNode.Data := nodeData;

  subNode := items.AddChild(mainNode, 'Node1');
  New(nodeData);
  nodeData^.id := 100100;
  nodeData^.InstanceClass := TFrame1;
  subNode.Data := nodeData;

  subNode := items.AddChild(mainNode, 'Node2');
  New(nodeData);
  nodeData^.id := 100200;
  nodeData^.InstanceClass := TFrame2;
  subNode.Data := nodeData;

  TreeView1.FullExpand;
end;</code></pre>
<p>响应TTreeView的OnChange事件，根据每个TTreeNode的Data定义显示不同的Frame或Form：</p>
<pre><code class="delphi">var
  currFrame: TForm;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  nodeData: ^TreeNodeData;

begin
  nodeData := Node.Data;
  //ShowMessage(intToStr(nodeData^.id));

  if (nodeData^.InstanceClass <> nil) then begin
    if (currFrame <> nil) and not (currFrame is nodeData^.InstanceClass) then begin
      currFrame.Free();
      currFrame := nil;
    end;
    if (currFrame = nil) then begin
      Application.CreateForm(nodeData^.InstanceClass, currFrame);
      currFrame.Parent := Panel2;
      currFrame.Align := alClient;
      currFrame.Show;
    end;
  end;

end;</code></pre>
<p>这样当需要添加新的Node时只需要更改很少的代码。</p>
<p>PS：相比于在Design视图上点来点去，还是更喜欢自己写代码来实现……</p>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/delphi/" title="Delphi" rel="tag">Delphi</a>, <a href="http://blog.sunshow.net/tag/ttreenode/" title="TTreeNode" rel="tag">TTreeNode</a>, <a href="http://blog.sunshow.net/tag/ttreeview/" title="TTreeView" rel="tag">TTreeView</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/2007/07/twebbrowser-custom-html/" title="TWebBrowser显示自定义Html内容 (2007-07-02)">TWebBrowser显示自定义Html内容</a> (3)</li>
	<li><a href="http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/" title="Delphi 2007 for Win32企业版安装方法 (2007-05-30)">Delphi 2007 for Win32企业版安装方法</a> (10)</li>
	<li><a href="http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/" title="TIdFTP的DirectoryListing使用问题 (2007-07-06)">TIdFTP的DirectoryListing使用问题</a> (1)</li>
	<li><a href="http://blog.sunshow.net/2009/01/%e5%a4%a7%e6%9d%82%e7%83%a9actionscript3/" title="大杂烩ActionScript3 (2009-01-17)">大杂烩ActionScript3</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/05/usage-of-ttreeview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi 2007 for Win32企业版安装方法</title>
		<link>http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/</link>
		<comments>http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/#comments</comments>
		<pubDate>Wed, 30 May 2007 11:06:02 +0000</pubDate>
		<dc:creator>Sunshow</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.sunshow.net/blog/archives/447.html</guid>
		<description><![CDATA[安装前提是你已经下载了Delphi 2007 for Win32的ISO。 Delphi 2007安装程序根据不同的序列号(许可文件)来判断安装版本，一般ISO中自带的许可文件是专业版的。 企业版和专业版的许可文件下载：delphi2007_slip.zip C++ Builder 2007的企业版许可文件(slip file for C++ Builder 2007)：cb2007_ent.zip 新装方法： 1、下载D2007。 2、删除D2007中的delphi2007.slip文件，将这里下载的d2007_Ent.slip直接拷入目录内(建议使用UltraISO编辑镜像)。 3、完成后就可以运行setup.exe文件开始安装了！安装过程中需要联网下载文件，请保持联网状态。 4、安装完成后用D2007Tweaks移除协议检测。 5、现在可以开始爽了！ 6、查看Source目录里是否为六个目录，对照下面的Runtime Packages表格，查看企业版所包含的几个文是否装上(dbxasa30.dll、dbxase30.dll、dbxdb230.dll 、dbxinf30.dll、dbxmss30.dll、dbxora30.dll、dsnap100.bpl、dsnapcon100.bpl、 dsnapent100.bpl、dss100.bpl、webdsnap100.bpl、websnap1 00.bpl这些文件分布在System32及Bin目录内)，以上两点满足就已经算是企业版了！ 如果安装时提示“Invalid Serial Number”，有两种可能： 1、将文件解压缩到硬盘上安装了，推荐用Daemon虚拟光驱安装 2、原先已经安装过Delphi 2007，这时候应该先将原有信息删除： if you got Invalid Serial Number message during install delete folders %ALL_USERS%\Application Data\CodeGear %ALL_USERS%\Application Data\{AB3EC276-D261-4943-A921-1CC1C6799AED} then run setup again 安装了企业版以后使用dbExpress连接Oracle就不会报缺少DLL了，但是实际发现连接MySql的时候还是会提示文件缺失…… 标签：Delphi 相关日志 TIdFTP的DirectoryListing使用问题 [...]]]></description>
			<content:encoded><![CDATA[<p>安装前提是你已经下载了Delphi 2007 for Win32的ISO。<br />
Delphi 2007安装程序根据不同的序列号(许可文件)来判断安装版本，一般ISO中自带的许可文件是专业版的。<br />
企业版和专业版的许可文件下载：<a href='http://blog.sunshow.net/wp-content/uploads/2007/05/delphi2007_slip.zip' title='delphi2007_slip.zip'>delphi2007_slip.zip</a></p>
<p>C++ Builder 2007的企业版许可文件(slip file for C++ Builder 2007)：<a href='http://blog.sunshow.net/wp-content/uploads/2007/07/cb2007_ent.zip' title='cb2007_ent.zip'>cb2007_ent.zip</a></p>
<blockquote><p>新装方法：<br />
1、下载D2007。<br />
2、删除D2007中的delphi2007.slip文件，将这里下载的d2007_Ent.slip直接拷入目录内(建议使用UltraISO编辑镜像)。<br />
3、完成后就可以运行setup.exe文件开始安装了！安装过程中需要联网下载文件，请保持联网状态。<br />
4、安装完成后用D2007Tweaks移除协议检测。<br />
5、现在可以开始爽了！<br />
6、查看Source目录里是否为六个目录，对照下面的Runtime Packages表格，查看企业版所包含的几个文是否装上(dbxasa30.dll、dbxase30.dll、dbxdb230.dll 、dbxinf30.dll、dbxmss30.dll、dbxora30.dll、dsnap100.bpl、dsnapcon100.bpl、 dsnapent100.bpl、dss100.bpl、webdsnap100.bpl、websnap1 00.bpl这些文件分布在System32及Bin目录内)，以上两点满足就已经算是企业版了！</p></blockquote>
<p>如果安装时提示“Invalid Serial Number”，有两种可能：<br />
1、将文件解压缩到硬盘上安装了，推荐用Daemon虚拟光驱安装<br />
2、原先已经安装过Delphi 2007，这时候应该先将原有信息删除：</p>
<blockquote><p>if you got Invalid Serial Number message during install<br />
delete folders<br />
%ALL_USERS%\Application Data\CodeGear<br />
%ALL_USERS%\Application Data\{AB3EC276-D261-4943-A921-1CC1C6799AED}<br />
then run setup again</p></blockquote>
<p>安装了企业版以后使用dbExpress连接Oracle就不会报缺少DLL了，但是实际发现连接MySql的时候还是会提示文件缺失……</p>

	<div style="clear:both;"></div>标签：<a href="http://blog.sunshow.net/tag/delphi/" title="Delphi" rel="tag">Delphi</a><br /><br />

	<div style="clear:both;"></div><strong>相关日志</strong>
	<ul class="st-related-posts">
	<li><a href="http://blog.sunshow.net/2007/07/tidftp-directorylisting-usage/" title="TIdFTP的DirectoryListing使用问题 (2007-07-06)">TIdFTP的DirectoryListing使用问题</a> (1)</li>
	<li><a href="http://blog.sunshow.net/2007/05/usage-of-ttreeview/" title="TTreeView的使用 (2007-05-31)">TTreeView的使用</a> (0)</li>
	<li><a href="http://blog.sunshow.net/2007/07/twebbrowser-custom-html/" title="TWebBrowser显示自定义Html内容 (2007-07-02)">TWebBrowser显示自定义Html内容</a> (3)</li>
	<li><a href="http://blog.sunshow.net/2009/01/%e5%a4%a7%e6%9d%82%e7%83%a9actionscript3/" title="大杂烩ActionScript3 (2009-01-17)">大杂烩ActionScript3</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.sunshow.net/2007/05/delphi-2007-win32-enterprise-install/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
