title: How to use ToString() implicitly in Delphi objects or strings?
body: <p>Delphi is like an England Queen Guard. It does not like ambiguity and may even kill to protect the hard code. But Java is almost a street corner woman. When I use this is java:</p>
  
  <pre><code> Button button = new Button();
   String a = "This is a " + button;
  </code></pre>
  
  <p>I get <code>This is a button</code></p>
  
  <p>But if I do that in Delphi:</p>
  
  <pre><code> ShowMessage('This is a ' + Button1);
  </code></pre>
  
  <p>I get an error, because Delphi has <code>toString()</code> method (now) but it does not implicitly calls it. Because literal strings are not objects in OP. The correct use is:</p>
  
  <pre><code> ShowMessage('This is a ' + Button1.toString());
  </code></pre>
  
  <p>Is there any way to override this behave so it works like Java? </p>
  
  <p>For reference: <a href="https://stackoverflow.com/questions/17051481/how-an-object-will-call-tostring-method-implicitly">How an object will call toString method implicitly?</a></p>