<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: DeHL Library</title>
	<atom:link href="http://alex.ciobanu.org/?feed=rss2&#038;page_id=162" rel="self" type="application/rss+xml" />
	<link>http://alex.ciobanu.org</link>
	<description>Yet Another Programming Blog</description>
	<lastBuildDate>Fri, 03 Sep 2010 09:43:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: alex</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2199</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Tue, 13 Jul 2010 08:11:59 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2199</guid>
		<description>&lt;a href=&quot;#comment-2193&quot; rel=&quot;nofollow&quot;&gt;@William Meyer &lt;/a&gt; 
I will start working on documentation for the 1.0 release. 1.0 will be the stable one in which I am not going to change interfaces. The next release is 0.9 so the documentation is following (0.9 -&gt; 1.0 will be only about docs).</description>
		<content:encoded><![CDATA[<p><a href="#comment-2193" rel="nofollow">@William Meyer </a><br />
I will start working on documentation for the 1.0 release. 1.0 will be the stable one in which I am not going to change interfaces. The next release is 0.9 so the documentation is following (0.9 -> 1.0 will be only about docs).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Meyer</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2193</link>
		<dc:creator>William Meyer</dc:creator>
		<pubDate>Sat, 10 Jul 2010 02:19:31 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2193</guid>
		<description>Alex, I have been reading your blog and noticed some mention of documentation you&#039;ve begun. I&#039;d like to see it, though I&#039;m sure you have little time for the writing. Perhaps if it helps me learn the package, I may be able to contribute some writing....</description>
		<content:encoded><![CDATA[<p>Alex, I have been reading your blog and noticed some mention of documentation you&#8217;ve begun. I&#8217;d like to see it, though I&#8217;m sure you have little time for the writing. Perhaps if it helps me learn the package, I may be able to contribute some writing&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alex</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2181</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Thu, 08 Jul 2010 21:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2181</guid>
		<description>&lt;a href=&quot;#comment-2178&quot; rel=&quot;nofollow&quot;&gt;@Tim Kelly &lt;/a&gt; 
Tim, send me an email at alex [at] ciobanu [dot] org. I&#039;ll try to respond with some explanations or I will update DeHL accordingly.

Alex.</description>
		<content:encoded><![CDATA[<p><a href="#comment-2178" rel="nofollow">@Tim Kelly </a><br />
Tim, send me an email at alex [at] ciobanu [dot] org. I&#8217;ll try to respond with some explanations or I will update DeHL accordingly.</p>
<p>Alex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Kelly</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2178</link>
		<dc:creator>Tim Kelly</dc:creator>
		<pubDate>Thu, 08 Jul 2010 18:39:38 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2178</guid>
		<description>Whoops.. sorry to bother you again... but i&#039;m a bit stuck... I&#039;ve got a list of customobjects and I want to sort them but I don&#039;t quite get how I define the compare algorithm to make one higher in the list over another....</description>
		<content:encoded><![CDATA[<p>Whoops.. sorry to bother you again&#8230; but i&#8217;m a bit stuck&#8230; I&#8217;ve got a list of customobjects and I want to sort them but I don&#8217;t quite get how I define the compare algorithm to make one higher in the list over another&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Kelly</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2177</link>
		<dc:creator>Tim Kelly</dc:creator>
		<pubDate>Thu, 08 Jul 2010 17:05:17 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2177</guid>
		<description>I am trying to make an OwnedObject dictionary (I need a fash object hash). I want the key to be a string and I want the hash to Own the objects. I didn&#039;t seem to get much luck doing a TObjectDictionary as it doesn&#039;t like the key being a string, rather than an object.... please help!</description>
		<content:encoded><![CDATA[<p>I am trying to make an OwnedObject dictionary (I need a fash object hash). I want the key to be a string and I want the hash to Own the objects. I didn&#8217;t seem to get much luck doing a TObjectDictionary as it doesn&#8217;t like the key being a string, rather than an object&#8230;. please help!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alex</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2172</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Tue, 06 Jul 2010 15:01:55 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2172</guid>
		<description>Thank you!

I employ different techniques when I find these debugging problems, but it mostly works. The newer Delphi versions are pretty stable in this regard.

Alex.</description>
		<content:encoded><![CDATA[<p>Thank you!</p>
<p>I employ different techniques when I find these debugging problems, but it mostly works. The newer Delphi versions are pretty stable in this regard.</p>
<p>Alex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Kelly</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2168</link>
		<dc:creator>Tim Kelly</dc:creator>
		<pubDate>Mon, 05 Jul 2010 13:35:51 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2168</guid>
		<description>I am VERY impressed by your library. It should be bundled with Delphi - I can&#039;t imaging coding without it now! One question: I&#039;ve been having a lot of problems with debugging classes nested in generics due to QC bug 84930 (debugger crashes). Given that you have coded a complex library which includes nested generics I was just wondering if a) you have come across this bug and more importantly b) if you have found a work-around / patch for it?

Life without a debugger is not fun!</description>
		<content:encoded><![CDATA[<p>I am VERY impressed by your library. It should be bundled with Delphi &#8211; I can&#8217;t imaging coding without it now! One question: I&#8217;ve been having a lot of problems with debugging classes nested in generics due to QC bug 84930 (debugger crashes). Given that you have coded a complex library which includes nested generics I was just wondering if a) you have come across this bug and more importantly b) if you have found a work-around / patch for it?</p>
<p>Life without a debugger is not fun!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alex</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2021</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Sun, 27 Jun 2010 21:05:05 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2021</guid>
		<description>&lt;a href=&quot;#comment-2020&quot; rel=&quot;nofollow&quot;&gt;@Tim Kelly &lt;/a&gt; 
Hi Tim., simple answer: interfaces are not serializable. Serialization in my current implementation has to be paired with deserialization. Since an Interface is not bound to any object type, you cannot know the type of the actual object behind it (not without breaking OOP concepts at least) so you cannot deserialize it. What you are seeing is exactly what it says - no serialization method defined for interface types.

As for classes, ISerializable is used to supply you own serialization code if you so choose. The default serialization method (by going recursively) is used on all classes if those do not provide their own ISerializable code.</description>
		<content:encoded><![CDATA[<p><a href="#comment-2020" rel="nofollow">@Tim Kelly </a><br />
Hi Tim., simple answer: interfaces are not serializable. Serialization in my current implementation has to be paired with deserialization. Since an Interface is not bound to any object type, you cannot know the type of the actual object behind it (not without breaking OOP concepts at least) so you cannot deserialize it. What you are seeing is exactly what it says &#8211; no serialization method defined for interface types.</p>
<p>As for classes, ISerializable is used to supply you own serialization code if you so choose. The default serialization method (by going recursively) is used on all classes if those do not provide their own ISerializable code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Kelly</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2020</link>
		<dc:creator>Tim Kelly</dc:creator>
		<pubDate>Sun, 27 Jun 2010 19:28:42 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2020</guid>
		<description>Regarding problem 3 actually I notice that in fact member fields don&#039;t need to be ISerializable after all.... the other problems still stand though.</description>
		<content:encoded><![CDATA[<p>Regarding problem 3 actually I notice that in fact member fields don&#8217;t need to be ISerializable after all&#8230;. the other problems still stand though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Kelly</title>
		<link>http://alex.ciobanu.org/?page_id=162&#038;cpage=1#comment-2019</link>
		<dc:creator>Tim Kelly</dc:creator>
		<pubDate>Sun, 27 Jun 2010 18:50:39 +0000</pubDate>
		<guid isPermaLink="false">http://alex.ciobanu.org/?page_id=162#comment-2019</guid>
		<description>Problem 1
-------------

Hmmm... Serialization of interfaces isn&#039;t quite working as expected:

IFoo = interface(ISerializable)

  end;

  TFoo = class(TInterfacedObject, IFoo)
    procedure Serialize(const AData: TSerializationData);
    procedure Deserialize(const AData: TDeserializationData);

  end;

 TTest = class
    FFoo : IFoo;
    public
    constructor Create;
  end;

  { TFoo }

procedure TFoo.Deserialize(const AData: TDeserializationData);
begin
  //
end;

procedure TFoo.Serialize(const AData: TSerializationData);
begin
  //
end;

{ TTest }

constructor TTest.Create()
begin
  FFoo := TFoo.Create;
end;

Now when I pass a copy of TTest to the serializer (as per your example http://alex.ciobanu.org/?p=285) I get:

&quot;The entity FFoo of type IFoo does not define any serialization/deseriazlion method.&quot;

This seems strange to me as IFoo is inherited from ISerializable.

I prefer using interfaces as fields in my classes as I don&#039;t need to worry about freeing them. This example works fine if I change FFoo : IFoo -&gt; FFoo : TFoo in TTest.

Problem 2
------------

By the way I discovered this during investigating another serious problem: I can&#039;t get any of your collection interfaces to serialize naturally (ie. if they are fields in TTest.)

Originally I suspected this was because your base collection interface isn&#039;t derived from ISerializable but having manually changed your code to inherit from ISerializable 

Problem 3
-------------
Finally... I don&#039;t get something. In your example (http://alex.ciobanu.org/?p=285), TTest is not supporting ISerializable but yet we can serialize it. So why must you insist that member object fields are ISerializable why can&#039;t we just apply the same process to them that is being applied to TTest?!

----

Thanks for your help in advance. Am I being really stupid?</description>
		<content:encoded><![CDATA[<p>Problem 1<br />
&#8212;&#8212;&#8212;&#8212;-</p>
<p>Hmmm&#8230; Serialization of interfaces isn&#8217;t quite working as expected:</p>
<p>IFoo = interface(ISerializable)</p>
<p>  end;</p>
<p>  TFoo = class(TInterfacedObject, IFoo)<br />
    procedure Serialize(const AData: TSerializationData);<br />
    procedure Deserialize(const AData: TDeserializationData);</p>
<p>  end;</p>
<p> TTest = class<br />
    FFoo : IFoo;<br />
    public<br />
    constructor Create;<br />
  end;</p>
<p>  { TFoo }</p>
<p>procedure TFoo.Deserialize(const AData: TDeserializationData);<br />
begin<br />
  //<br />
end;</p>
<p>procedure TFoo.Serialize(const AData: TSerializationData);<br />
begin<br />
  //<br />
end;</p>
<p>{ TTest }</p>
<p>constructor TTest.Create()<br />
begin<br />
  FFoo := TFoo.Create;<br />
end;</p>
<p>Now when I pass a copy of TTest to the serializer (as per your example <a href="http://alex.ciobanu.org/?p=285)" rel="nofollow">http://alex.ciobanu.org/?p=285)</a> I get:</p>
<p>&#8220;The entity FFoo of type IFoo does not define any serialization/deseriazlion method.&#8221;</p>
<p>This seems strange to me as IFoo is inherited from ISerializable.</p>
<p>I prefer using interfaces as fields in my classes as I don&#8217;t need to worry about freeing them. This example works fine if I change FFoo : IFoo -&gt; FFoo : TFoo in TTest.</p>
<p>Problem 2<br />
&#8212;&#8212;&#8212;&#8212;</p>
<p>By the way I discovered this during investigating another serious problem: I can&#8217;t get any of your collection interfaces to serialize naturally (ie. if they are fields in TTest.)</p>
<p>Originally I suspected this was because your base collection interface isn&#8217;t derived from ISerializable but having manually changed your code to inherit from ISerializable </p>
<p>Problem 3<br />
&#8212;&#8212;&#8212;&#8212;-<br />
Finally&#8230; I don&#8217;t get something. In your example (<a href="http://alex.ciobanu.org/?p=285" rel="nofollow">http://alex.ciobanu.org/?p=285</a>), TTest is not supporting ISerializable but yet we can serialize it. So why must you insist that member object fields are ISerializable why can&#8217;t we just apply the same process to them that is being applied to TTest?!</p>
<p>&#8212;-</p>
<p>Thanks for your help in advance. Am I being really stupid?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
