On Monday 08 May 2017 18:12:19 Marcos Douglas B. Santos wrote:
> On Mon, May 8, 2017 at 12:40 PM, Martin Schreiber <mse00...@gmail.com> 
> > "
> > "ini" and "fini" work for stack and heap.
> In fact, this is a good idea. But why don't use [initialization] and
> [finalization]?
> The IDE has code-completion so, is better to see a code more readable,
> don't you think?
MSEide has no code-completion, I don't like automatism which fiddle with my 
code and I don't like popping-up windows which disturb the flow of thoughts 
while programming. ;-)

> You've already answered "No, obj2 is a pointer." but what about if the
> compiler change this by itself, putting a "^" because the variable
> declaration has one?
> var
>  obj1: objty;  //an instance on stack, needs no create() or destroy()
>  obj2: ^objty; //on heap
> begin
>  obj1.f1:= 123;
>  obj2:= objty.create();
>  try
>   // I did not write the '^' but the compiler will use because the
> declaration in VAR
>   obj2.f1:= 123;
>  finally
>   obj2.destroy();
>  end;
> end;
It contradicts the usual Pascal and MSElang pointer notation:
 recty: record
  a: int32;
  b: int32;
 precty = ^recty;

 objty: object
  a: int32;
  b: int32;
  constructor create();
 pobjty = ^objty;

 rec1: recty;
 rec2: precty;
 rect3: ^recty;
 obj1:= objty;
 obj2:= pobjty;
 obj3:= ^objty;
 new(rec2); //new is probably not available in MSElang
 rec3:= @rec1;
 rec1.a:= 123;
 rec2^.a:= 123;
 rec3^.b:= 456;
 obj2:= objty.create();
 obj3:= @obj1;
 obj1.a:= 123;
 obj2^.a:= 123;
// obj2.a:= 123; inconsequent!
 obj3^.b:= 456;
// obj3.b:= 456; inconsequent!

Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
mseide-msegui-talk mailing list

Reply via email to