<div dir="ltr"><div class="gmail_quote">On Tue, Aug 2, 2011 at 18:03, Marcos Douglas <span dir="ltr"><<a href="mailto:md@delfire.net">md@delfire.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

2011/8/2 Max Vlasov <<a href="mailto:max.vlasov@gmail.com">max.vlasov@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Hi,<br>
><br>
> Personally I stopped using 'with' keyword long time ago, but there are code<br>
> fragments from the past and today I fixed a little bug showing again that<br>
> it's a evil. TCanvas in lazarus has width and height properties while in<br>
> Delphi it hasn't (at least some time ago). So the code below leads to<br>
> different results in lazarus and Delphi, at least for design-time drawing.<br>
><br>
> procedure TControlDescendant.Paint;<br>
> begin<br>
>   with Canvas do<br>
>   begin<br>
>       Rectangle(0, 0, Width, Height);<br>
>   edn;<br>
> end;<br>
><br>
> So not only the 'with' context can silently change while the project is<br>
> evolving, it can also change while it's being ported...<br>
<br>
</div></div>IMHO, 'with' should have an implicit pointer like 'self' (could be<br>
'this' or whatever).<br>
<br>
Eg:<br>
<div class="im"><br>
procedure TControlDescendant.Paint;<br>
begin<br>
  with Canvas do<br>
  begin<br>
</div>      this.Rectangle(0, 0, this.Width, this.Height);<br>
  edn;<br>
end;<br></blockquote><div><br>That's also bad. Because I can use for example "with" the following way:<br><br>with area, canvas do<br>  begin<br>    Rectangle(0,0, with, height);<br>  end;<br><br>If you'll have "this" or "self" or $_ (in perl :)) it still contain the same problem. I prefer explicit code then implicit code. It's more readable and less error prone. <br>

<br>I think that "with" like "goto" need to be enabled by special parameter and not allowed by default.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<font color="#888888"><br>
Marcos Douglas<br></font></blockquote><div><br>Ido<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><font color="#888888">
</font><div><div></div><div class="h5"><br>
--<br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus.freepascal.org">Lazarus@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
</div></div></blockquote></div><br></div>