[Lazarus] 'with' is evil, isn't it?

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Tue Aug 2 18:56:15 CEST 2011


Hans-Peter Diettrich wrote:
> Marcos Douglas schrieb:
> 
>> IMHO, 'with' should have an implicit pointer like 'self' (could be
>> 'this' or whatever).
> 
> This<g> will fail with nested With's, or a With with multiple expressions.
> 
> A nicer syntax would require only an "." for your "this.".
> 
>> Eg:
>>
>> procedure TControlDescendant.Paint;
>> begin
>>   with Canvas do
>>   begin
>>       this.Rectangle(0, 0, this.Width, this.Height);
>         .Rectangle(0,0, .Width, .Height);
>>   edn;
>> end;

One I've floated elsewhere is to allow  with  to define an alias with 
the same notation as a constant:

   with tsm= TSming(caller^) do begin
     while tsm.Count <= writePos do
       tsm.Append('');

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list