<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ben Grasset <<a href="mailto:operator97@gmail.com">operator97@gmail.com</a>> schrieb am Mi., 3. Juli 2019, 18:00:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">On Tue, Jul 2, 2019 at 7:38 PM Ondrej Pokorny <<a href="mailto:lazarus@kluug.net" target="_blank" rel="noreferrer">lazarus@kluug.net</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
A good real-word example is the cast from a pointer:<br>
<br>
program Project1;<br>
uses Classes;<br>
var<br>
   Value: TPersistent;<br>
   P: Pointer;<br>
begin<br>
   P := TObject.Create;<br>
   Value := TPersistent(P);<br>
   if Value is TPersistent then<br>
     Writeln('Value is TPersistent')<br>
   else<br>
     Writeln('Value is not TPersistent');<br>
   Readln;<br>
end.<br></blockquote><div><br></div><div>In general, assuming P was a pointer initialized elsewhere (meaning you really didn't know what it was), why wouldn't you just write this:</div><div><br></div><div>  if TObject(P) is TPersistent then<br>    Writeln('Value is TPersistent')<br>  else<br>    Writeln('Value is not TPersistent');<br>  Readln;<br></div><div><br></div><div>Behaves as you'd expect, and doesn't require an additional variable.</div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The code by Ondrej was to prove a point not to have the shortest variant. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>