Re: [Lazarus] Auto adding interface methods

2012-02-23 Thread ik
On Thu, Feb 23, 2012 at 11:27, Mattias Gaertner
 wrote:
> On Thu, 23 Feb 2012 11:09:18 +0200
> ik  wrote:
>
>>[...]
>> In my knowledge in Pascal, if the child does not pass the parent
>> properties, then they are not visible in the child.
>> For example in the RTTI you will not see the published property
>> because it was not foreword to the child.
>
> No. In fact you can only raise the visibility of a property, never
> decrease it.

Wow, damm it's the second thing that I discover that what I think I
know, and what actually there are wrong.

Thanks to you and Sven as well for this, and the tool is useless.

>
> Mattias
>
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-23 Thread Mattias Gaertner
On Thu, 23 Feb 2012 11:09:18 +0200
ik  wrote:

>[...]
> In my knowledge in Pascal, if the child does not pass the parent
> properties, then they are not visible in the child.
> For example in the RTTI you will not see the published property
> because it was not foreword to the child.

No. In fact you can only raise the visibility of a property, never
decrease it.

Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-23 Thread Sven Barth

Am 23.02.2012 10:09, schrieb ik:

On Thu, Feb 23, 2012 at 10:57, Mattias Gaertner
  wrote:

On Thu, 23 Feb 2012 09:32:14 +0200
ik  wrote:


On Thu, Feb 23, 2012 at 00:45, Mattias Gaertner
  wrote:

On Thu, 23 Feb 2012 00:26:32 +0200
ik  wrote:


On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
  wrote:

On Wed, 22 Feb 2012 23:57:12 +0200
ik  wrote:


Hello,

Is there a shortcut in Lazarus's editor for Adding all of the methods
that are added to an interface ?


No. There is already a feature request.



Also, Is there a way to tell Lazarus to foreword the parent methods
and property for the child's declaration ?


Can you give an example?


TParent = class
private
   FBar : String;
   FBaz : integer;
public
   procedure Foo;

   property Bar : String read FBar; write FBar;
published
   property Baz : Integer read FBaz write FBaz
end;

TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
public
property Bar; //Foreword from CTRL+SHIFT+C for example
published
property Baz; // ...
end;


The above has no effect.
What do you want to achieve?


That rather constantly doing copy paste of original properties and
even methods to foreword to a new class, there will be a tool for
that.
With my Redis client, I have a basic class that contain such
properties, and few classes that inherits them, and require to have
the properties inside.
It would be nice, but not a real demand to have such support.

The CTRL+SHIFT+C is the tool for the job imho, because it completes
code declarations, but as you discover, it does not do that at the
time.
I think that part of the interface inheritance feature that will or
might be designed, it should support also this.


I still don't see the point.
The properties have the same visibility, type, getters and setters.
I could understand the demand for a tool doing the opposite: to clean up
such duplicate properties.
Or a tool to raise the visibility of inherited properties.


In my knowledge in Pascal, if the child does not pass the parent
properties, then they are not visible in the child.
For example in the RTTI you will not see the published property
because it was not foreword to the child.


No, this is wrong. A class always inherits the properties of its parent.

The following example prints "42":

=== example begin ===

program test;

{$mode objfpc}
{$apptype console}

uses
  typinfo;

type
  {$TYPEINFO ON}
  TTest = class
  private
fFoo: LongInt;
  published
property Foo: LongInt read fFoo write fFoo;
  end;
  {$TYPEINFO OFF}

  TTestChild = class(TTest)

  end;


var
  t: TTestChild;
begin
  t := TTestChild.Create;
  t.Foo := 42;
  Writeln(GetOrdProp(t, 'Foo'));

end.

=== example end ===

So your suggested tool is basically useless.

You only need to write "property Foo;" in a child class if you want to 
increase the visibility of the property (e.g. from protected to public 
or published)


Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-23 Thread ik
On Thu, Feb 23, 2012 at 10:57, Mattias Gaertner
 wrote:
> On Thu, 23 Feb 2012 09:32:14 +0200
> ik  wrote:
>
>> On Thu, Feb 23, 2012 at 00:45, Mattias Gaertner
>>  wrote:
>> > On Thu, 23 Feb 2012 00:26:32 +0200
>> > ik  wrote:
>> >
>> >> On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
>> >>  wrote:
>> >> > On Wed, 22 Feb 2012 23:57:12 +0200
>> >> > ik  wrote:
>> >> >
>> >> >> Hello,
>> >> >>
>> >> >> Is there a shortcut in Lazarus's editor for Adding all of the methods
>> >> >> that are added to an interface ?
>> >> >
>> >> > No. There is already a feature request.
>> >> >
>> >> >
>> >> >> Also, Is there a way to tell Lazarus to foreword the parent methods
>> >> >> and property for the child's declaration ?
>> >> >
>> >> > Can you give an example?
>> >>
>> >> TParent = class
>> >> private
>> >>   FBar : String;
>> >>   FBaz : integer;
>> >> public
>> >>   procedure Foo;
>> >>
>> >>   property Bar : String read FBar; write FBar;
>> >> published
>> >>   property Baz : Integer read FBaz write FBaz
>> >> end;
>> >>
>> >> TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
>> >> public
>> >>    property Bar; //Foreword from CTRL+SHIFT+C for example
>> >> published
>> >>    property Baz; // ...
>> >> end;
>> >
>> > The above has no effect.
>> > What do you want to achieve?
>>
>> That rather constantly doing copy paste of original properties and
>> even methods to foreword to a new class, there will be a tool for
>> that.
>> With my Redis client, I have a basic class that contain such
>> properties, and few classes that inherits them, and require to have
>> the properties inside.
>> It would be nice, but not a real demand to have such support.
>>
>> The CTRL+SHIFT+C is the tool for the job imho, because it completes
>> code declarations, but as you discover, it does not do that at the
>> time.
>> I think that part of the interface inheritance feature that will or
>> might be designed, it should support also this.
>
> I still don't see the point.
> The properties have the same visibility, type, getters and setters.
> I could understand the demand for a tool doing the opposite: to clean up
> such duplicate properties.
> Or a tool to raise the visibility of inherited properties.

In my knowledge in Pascal, if the child does not pass the parent
properties, then they are not visible in the child.
For example in the RTTI you will not see the published property
because it was not foreword to the child.

>
> Mattias
>
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-23 Thread Mattias Gaertner
On Thu, 23 Feb 2012 09:32:14 +0200
ik  wrote:

> On Thu, Feb 23, 2012 at 00:45, Mattias Gaertner
>  wrote:
> > On Thu, 23 Feb 2012 00:26:32 +0200
> > ik  wrote:
> >
> >> On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
> >>  wrote:
> >> > On Wed, 22 Feb 2012 23:57:12 +0200
> >> > ik  wrote:
> >> >
> >> >> Hello,
> >> >>
> >> >> Is there a shortcut in Lazarus's editor for Adding all of the methods
> >> >> that are added to an interface ?
> >> >
> >> > No. There is already a feature request.
> >> >
> >> >
> >> >> Also, Is there a way to tell Lazarus to foreword the parent methods
> >> >> and property for the child's declaration ?
> >> >
> >> > Can you give an example?
> >>
> >> TParent = class
> >> private
> >>   FBar : String;
> >>   FBaz : integer;
> >> public
> >>   procedure Foo;
> >>
> >>   property Bar : String read FBar; write FBar;
> >> published
> >>   property Baz : Integer read FBaz write FBaz
> >> end;
> >>
> >> TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
> >> public
> >>    property Bar; //Foreword from CTRL+SHIFT+C for example
> >> published
> >>    property Baz; // ...
> >> end;
> >
> > The above has no effect.
> > What do you want to achieve?
> 
> That rather constantly doing copy paste of original properties and
> even methods to foreword to a new class, there will be a tool for
> that.
> With my Redis client, I have a basic class that contain such
> properties, and few classes that inherits them, and require to have
> the properties inside.
> It would be nice, but not a real demand to have such support.
> 
> The CTRL+SHIFT+C is the tool for the job imho, because it completes
> code declarations, but as you discover, it does not do that at the
> time.
> I think that part of the interface inheritance feature that will or
> might be designed, it should support also this.

I still don't see the point.
The properties have the same visibility, type, getters and setters.
I could understand the demand for a tool doing the opposite: to clean up
such duplicate properties.
Or a tool to raise the visibility of inherited properties.

Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-22 Thread ik
On Thu, Feb 23, 2012 at 00:45, Mattias Gaertner
 wrote:
> On Thu, 23 Feb 2012 00:26:32 +0200
> ik  wrote:
>
>> On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
>>  wrote:
>> > On Wed, 22 Feb 2012 23:57:12 +0200
>> > ik  wrote:
>> >
>> >> Hello,
>> >>
>> >> Is there a shortcut in Lazarus's editor for Adding all of the methods
>> >> that are added to an interface ?
>> >
>> > No. There is already a feature request.
>> >
>> >
>> >> Also, Is there a way to tell Lazarus to foreword the parent methods
>> >> and property for the child's declaration ?
>> >
>> > Can you give an example?
>>
>> TParent = class
>> private
>>   FBar : String;
>>   FBaz : integer;
>> public
>>   procedure Foo;
>>
>>   property Bar : String read FBar; write FBar;
>> published
>>   property Baz : Integer read FBaz write FBaz
>> end;
>>
>> TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
>> public
>>    property Bar; //Foreword from CTRL+SHIFT+C for example
>> published
>>    property Baz; // ...
>> end;
>
> The above has no effect.
> What do you want to achieve?

That rather constantly doing copy paste of original properties and
even methods to foreword to a new class, there will be a tool for
that.
With my Redis client, I have a basic class that contain such
properties, and few classes that inherits them, and require to have
the properties inside.
It would be nice, but not a real demand to have such support.

The CTRL+SHIFT+C is the tool for the job imho, because it completes
code declarations, but as you discover, it does not do that at the
time.
I think that part of the interface inheritance feature that will or
might be designed, it should support also this.

Thanks,

>
> Mattias

Ido
>
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-22 Thread Mattias Gaertner
On Thu, 23 Feb 2012 00:26:32 +0200
ik  wrote:

> On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
>  wrote:
> > On Wed, 22 Feb 2012 23:57:12 +0200
> > ik  wrote:
> >
> >> Hello,
> >>
> >> Is there a shortcut in Lazarus's editor for Adding all of the methods
> >> that are added to an interface ?
> >
> > No. There is already a feature request.
> >
> >
> >> Also, Is there a way to tell Lazarus to foreword the parent methods
> >> and property for the child's declaration ?
> >
> > Can you give an example?
> 
> TParent = class
> private
>   FBar : String;
>   FBaz : integer;
> public
>   procedure Foo;
> 
>   property Bar : String read FBar; write FBar;
> published
>   property Baz : Integer read FBaz write FBaz
> end;
> 
> TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
> public
>property Bar; //Foreword from CTRL+SHIFT+C for example
> published
>property Baz; // ...
> end;

The above has no effect.
What do you want to achieve?

Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-22 Thread ik
On Thu, Feb 23, 2012 at 00:09, Mattias Gaertner
 wrote:
> On Wed, 22 Feb 2012 23:57:12 +0200
> ik  wrote:
>
>> Hello,
>>
>> Is there a shortcut in Lazarus's editor for Adding all of the methods
>> that are added to an interface ?
>
> No. There is already a feature request.
>
>
>> Also, Is there a way to tell Lazarus to foreword the parent methods
>> and property for the child's declaration ?
>
> Can you give an example?

TParent = class
private
  FBar : String;
  FBaz : integer;
public
  procedure Foo;

  property Bar : String read FBar; write FBar;
published
  property Baz : Integer read FBaz write FBaz
end;

TChild = class(TParent) // Let's say CTRL+SHIFT+C for example
public
   property Bar; //Foreword from CTRL+SHIFT+C for example
published
   property Baz; // ...
end;

>
> Mattias

Ido

>
>
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-22 Thread Marcos Douglas
On Wed, Feb 22, 2012 at 8:09 PM, Mattias Gaertner
 wrote:
> On Wed, 22 Feb 2012 23:57:12 +0200
> ik  wrote:
>
>> Hello,
>>
>> Is there a shortcut in Lazarus's editor for Adding all of the methods
>> that are added to an interface ?
>
> No. There is already a feature request.

Good, good... =)

>> Also, Is there a way to tell Lazarus to foreword the parent methods
>> and property for the child's declaration ?
>
> Can you give an example?
>
> Mattias

Marcos Douglas

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Auto adding interface methods

2012-02-22 Thread Mattias Gaertner
On Wed, 22 Feb 2012 23:57:12 +0200
ik  wrote:

> Hello,
> 
> Is there a shortcut in Lazarus's editor for Adding all of the methods
> that are added to an interface ?

No. There is already a feature request.


> Also, Is there a way to tell Lazarus to foreword the parent methods
> and property for the child's declaration ?

Can you give an example?

Mattias
 

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Auto adding interface methods

2012-02-22 Thread ik
Hello,

Is there a shortcut in Lazarus's editor for Adding all of the methods
that are added to an interface ?
Also, Is there a way to tell Lazarus to foreword the parent methods
and property for the child's declaration ?

Thanks,
Ido

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus