Hi,

I also think this would be useful, but for other reasons, often times I end up 
with code like the following:

With BigLongThingIDontWantToWriteOutEverySingleTime do
  begin
     Height := 100;
     Width := 200;
    ...
     SomeOtherObject.Submit(BigLongThingIDontWantToWriteOutEverySingleTime);
  end;

Notice how I have to write the long thing out again at the bottom.  There must 
be a way around that (Something like "Self", but that refers to whatever you 
are using in With).  In Xiangrong's example, this could be mci, but even it it 
was a static name it would be useful.  (If this exists and I am just not aware, 
please let me know!)

Thank you,
   Noah Silva

On 2013/03/16, at 15:13, Xiangrong Fang <xrf...@gmail.com> wrote:

> Suppose I have the following class:
> 
> type
>   TMyClass = class
>   public
>     property Caption: string read FCaption write FCaption;
>     property Items[Index: Integer]: string read GetItem write SetItem; 
> default;
>     function Count: Integer;
>   end;
> 
> I would like to do this:
> 
> with MyClassInstance as mci, SomethingElse do begin
>   Caption := 'A new caption';
>   for i := 0 to Count - 1 do
>     mci[i] := UpperCase(mci[i]);
> end;
> 
> That is, to add an optional "as" clause to the with statement so that access 
> array element in a structure is made easier.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to