<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.us.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>27 Apr 2016 03:38:00 Z</lastBuildDate><pubDate>27 Apr 2016 02:08:00 Z</pubDate><description>G'day All,&#13;
I realise that I am a little slow off the mark in converting to V20 as I did not want to be held up by differences in behaviour in the new version. Well, I have found one that might seem obscure but has caused me a little grief so I thought I would share what I have found.&#13;
&#13;
I use a lot of classes. I make the members PRIVATE and access them via properties.&#13;
I also have members that are dynamic object definitions that can be assigned to "point" to existing instantiated objects. I declare them as say:&#13;
m_pclMyPtr is ctMyclass dynamic&#13;
&#13;
To create the property I use the "Right click" on the member in the project explorer. This generates the "Getter" and "Setter" procedures.&#13;
(N.B. In V19, as I created them they would appear in the explorer property list. That does not happen in V20. They do not show)&#13;
&#13;
This process creates the Procedure definitions like:&#13;
&#13;
PROCEDURE p_pclMyPtr(clValue ) : ctMyClass // Getter&#13;
&#13;
PROCEDURE p_pclMyPtr(clValue is ctMyClass) // Setter&#13;
&#13;
Now, up to V19 I could assign a Null value to the member via the class property Setter, defined above. e.g.&#13;
clMyObject.p_pclMyPtr = Null&#13;
&#13;
In V20, if I assign a value of Null to the property as defined above then this does not happen. What happens is that the member is assigned an "Empty" class container. I say empty because the class has not even been instantiated i.e. the Constructor has NOT run. Seems like the class is being treated like a structure.&#13;
&#13;
However, if I remove the type specification in the Procedure declaration for the Setter procedure then the member DOES get assigned to Null. i.e. the Setter definition becomes&#13;
&#13;
PROCEDURE p_pclMyPtr(clValue) // Setter&#13;
&#13;
This behaviour has been introduced in V20. Currently I am reviewing my code to confirm I have found all instances where this affects me.&#13;
&#13;
I have no idea why PC Soft have done this. Null is a valid value for a dynamic object as far as I know. The difficult thing is that the member ends up an invalid value. Not Good!&#13;
&#13;
So far, this is the only substantive issue I have had in upgrading to V20. Pretty good really.&#13;
I am guessing that this behaviour will also carry over to V21.&#13;
Cheers,&#13;
Steve H</description><ttl>30</ttl><generator>WEBDEV</generator><language>en_US</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.us.windev/57431-annoying-change-behaviour-wd19-wd20/read.awp</link><title>Annoying Change in Behaviour  WD19 =&amp;gt; WD20</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>guest</author><category>pcsoft.us.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.us.windev/57431-annoying-change-behaviour-wd19-wd20-57434/read.awp</comments><pubDate>27 Apr 2016 03:38:00 Z</pubDate><description>Further testing shows that if a procedure header specifies a class object as an optional parameter with a default of Null then t…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.us.windev/57431-annoying-change-behaviour-wd19-wd20-57434/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.us.windev/57431-annoying-change-behaviour-wd19-wd20-57434/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.us.windev/57431-annoying-change-behaviour-wd19-wd20/read.awp">Annoying Change in Behaviour  WD19 =&amp;gt; WD20</source><title>Re: Annoying Change in Behaviour  WD19 =&amp;gt; WD20</title></item></channel></rss>
