Re: [Lazarus] Auto adding interface methods
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
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
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
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
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
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
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
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
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
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
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