<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="+1">Thanks a lot for clarification.<br>
<br>
Dennis<br>
</font><br>
Sven Barth wrote:
<blockquote cite="mid:524F039E.9040402@googlemail.com" type="cite">On
04.10.2013 14:48, Dennis Poon wrote:
  <br>
  <blockquote type="cite"><br>
    <br>
 >You can use either FillChar as you did or use "Self :=
    <br>
Default(TTest);" (default is a compiler intrinsics that returns a 0
    <br>
value of the type >you passed in, e.g. Nil for classes, '' for
strings,
    <br>
0 for ordinals and for records all fields are set to 0)
    <br>
    <br>
How can I make it so that I only do the Self := Default() once in the
    <br>
parent class constructor and don't have to repeat it in all its
    <br>
descendant class constructor.
    <br>
  </blockquote>
  <br>
Why would you want to do that? Classes are already zero initialized
when the constructor is entered.
  <br>
Also using "Self := Default(...)" inside a class would not do what you
expect it to do. "Self" is a class reference and thus "Default(...)" of
the same type would return "Nil" and thus set your "Self" for the
current method call to "Nil" (so you could no longer access the class
instance at all).
  <br>
  <br>
  <blockquote type="cite">I noticed in your example, you have to
specify the class name TTest but
    <br>
that implies in every descendant class,  I have to replace it with the
    <br>
Descendant class name.
    <br>
    <br>
Can I do
    <br>
   self := Default(ClassType) ?
    <br>
hoping it will return the descendant's class type?
    <br>
  </blockquote>
  <br>
Default expects a type identifier and nothing else. I currently don't
know whether Delphi supports more. But in any way it wouldn't change
much as Default(TObject) = Default(TSomeClass) =
Default(TSomeChildClass) = Nil.
  <br>
  <br>
Regards,
  <br>
Sven
  <br>
_______________________________________________
  <br>
fpc-pascal maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>
  <br>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/mailman/listinfo/fpc-pascal">http://lists.freepascal.org/mailman/listinfo/fpc-pascal</a>
  <br>
  <br>
  <br>
-----
  <br>
No virus found in this message.
  <br>
Checked by AVG - <a class="moz-txt-link-abbreviated" href="http://www.avg.com">www.avg.com</a>
  <br>
Version: 2013.0.3408 / Virus Database: 3222/6723 - Release Date:
10/04/13
  <br>
  <br>
  <br>
</blockquote>
</body>
</html>