<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Message</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004>The following 
example came up recently.</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>TForm1 
=&nbsp;class(TForm)</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>public</SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><FONT><SPAN 
class=476352201-28092004>&nbsp; </SPAN></FONT><FONT><SPAN 
class=476352201-28092004>constructor Create(POwner: TComponent); 
override;</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><FONT><SPAN 
class=476352201-28092004>&nbsp; </SPAN></FONT><FONT><SPAN 
class=476352201-28092004>class procedure 
ShowMe;</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>constructor 
TForm1.Create(POwner: TComponent)</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>begin</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
ShowMessage('TForm1.Create 1');</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
inherited Create(POwner);</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>&nbsp;&nbsp;ShowMessage('TForm1.Create 
2');</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>class 
procedure TForm1.ShowMe</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>var</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>&nbsp;&nbsp;&nbsp; LForm: TForm1;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>begin</SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><FONT><SPAN 
class=476352201-28092004>&nbsp; </SPAN></FONT><FONT><SPAN 
class=476352201-28092004>LForm1 
:=&nbsp;Self.Create(nil);</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
try</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>&nbsp;&nbsp;&nbsp; 
LForm1.ShowModal;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
finally</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>&nbsp;&nbsp;&nbsp; LForm1.Free</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
end;</SPAN></FONT></DIV>
<DIV><FONT><SPAN class=476352201-28092004></SPAN></FONT><FONT face="Courier New" 
size=2><SPAN class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>TForm2 
=&nbsp;class(TForm)</SPAN></FONT></DIV>
<DIV><SPAN class=476352201-28092004>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>public</SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><SPAN class=476352201-28092004>&nbsp; 
</SPAN><SPAN class=476352201-28092004>constructor Create(POwner: TComponent); 
override;</SPAN></FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT><SPAN class=476352201-28092004>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>constructor 
TForm2.Create(POwner: TComponent)</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>begin</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
ShowMessage('TForm2.Create 1');</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>&nbsp; 
inherited Create(POwner);</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>&nbsp;&nbsp;ShowMessage('TForm2.Create 
2');</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV></SPAN></FONT></DIV></SPAN></DIV></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>TForm3 
=&nbsp;class(TForm)</SPAN></FONT></DIV>
<DIV>
<DIV>
<DIV><FONT face=Arial><SPAN class=476352201-28092004>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>public</SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><SPAN class=476352201-28092004>&nbsp; 
</SPAN><SPAN class=476352201-28092004>constructor Create(POwner: TComponent; 
PWhoCares: Boolean); reintroduce;</SPAN></FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New"><SPAN class=476352201-28092004>
<DIV><SPAN class=476352201-28092004><FONT size=2>constructor 
TForm3.Create(POwner: TComponent; PWhoCares: Boolean)</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>begin</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>&nbsp; 
ShowMessage('TForm3.Create 1');</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>&nbsp; inherited 
Create(POwner);</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT 
size=2>&nbsp;&nbsp;ShowMessage('TForm3.Create 2');</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>end;</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=476352201-28092004>
<DIV><FONT face="Courier New" size=2><SPAN class=476352201-28092004>TForm4 
=&nbsp;class(TForm3)</SPAN></FONT></DIV>
<DIV>
<DIV>
<DIV><FONT face=Arial><SPAN class=476352201-28092004>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>public</SPAN></FONT></DIV>
<DIV><FONT face="Courier New"><FONT size=2><SPAN class=476352201-28092004>&nbsp; 
</SPAN><SPAN class=476352201-28092004>constructor Create(POwner: TComponent); 
reintroduce; // Can't be inherited because create is reintroduced in 
TForm3.</SPAN></FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004>end;</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New"><SPAN class=476352201-28092004>
<DIV><SPAN class=476352201-28092004><FONT size=2>constructor 
TForm4.Create(POwner: TComponent)</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>begin</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>&nbsp; 
ShowMessage('TForm4.Create 1');</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>&nbsp; inherited 
Create(POwner);</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT 
size=2>&nbsp;&nbsp;ShowMessage('TForm4.Create 2');</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2>end;</FONT></SPAN></DIV>
<DIV><SPAN class=476352201-28092004><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004>Calling 
TForm2.ShowMe works perfectly showing all of the correct 
messages.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004>Calling 
TForm4.ShowMe does not and only shows the messages for 
TForm1.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004>The flag&nbsp;<FONT 
face="Courier New">reintroduce</FONT> must create a new heirarchy in the virtual 
method table...</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004>Interesting 
huh.</SPAN></FONT></DIV></SPAN></FONT></DIV></SPAN></FONT></DIV></DIV></DIV></SPAN></DIV>
<DIV><FONT face=Arial size=2><SPAN class=476352201-28092004></SPAN></FONT><FONT 
face=Arial size=2><SPAN 
class=476352201-28092004></SPAN></FONT>&nbsp;</DIV></SPAN></FONT></DIV></SPAN></FONT><FONT 
face=Arial size=2></FONT></DIV></DIV></DIV>
<DIV align=left><FONT face="Courier New" size=2>Stacey 
Verner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Ph:&nbsp;&nbsp; +64-9-4154790<BR>Software 
Developer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fax:&nbsp; 
+64-9-4154791<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;&nbsp; 
DDI:&nbsp; +64-9-4154797<BR>CJN Technologies Ltd.&nbsp;&nbsp;&nbsp;&nbsp; Email: 
</FONT><A href="mailto:stacey@cjntech.co.nz"><FONT face="Courier New" 
size=2>stacey@cjntech.co.nz</FONT></A><BR><FONT face="Courier New" size=2>PO Box 
302-278, North Harbour, Auckland 1330, New Zealand<BR>12 Piermark Drive, North 
Harbour, Auckland, New Zealand<BR>Visit our website at </FONT><A 
href="http://www.cjntech.co.nz/"><FONT face="Courier New" 
size=2>http://www.cjntech.co.nz/</FONT></A><FONT face="Courier New" size=2> 
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BODY></HTML>