On Thu, 22 Jun 2006 15:13:54 +0200 (CEST)
[EMAIL PROTECTED] wrote:
> Yesterday I had a question about how to add a method using CodeTools. I
> got it working, but I still have a question wether or not I managed to get
> it to work in the right way.
>
> I want to add a published procedure. The type declaration is the
> following;
>
> type TMyMethodType = procedure;
>
> the code is added in the following way:
>
> CodeToolBoss.CreatePublishedMethod(ACodeBuffer,AClassName,AMethodName,
> typeinfo(TMyMethodType),true);
>
> This actually adds the property but it looks like this;
>
> procedure MyProc:; <- notice the colon and semicolon as in a function.
>
> I have used the patch added below to get it to work, but I'm in doubt
> wether or not I'm mistaking here. Should I have done it another way? I
> believe the patch wouldn't hurt anyway, what is the reason for adding ':'
> + ResultType if ResultType is empty. But as said, perhaps I'm too ignorant
> to see how it should actually work.
Applied. Thanks.
> Another question is, how to create Private methods, is there a way to do
> it, or do we need a new implementation?
I added a 'CreatePrivateMethod' and added a parameter to the tool function.
>
> Darius
>
>
> Index: eventcodetool.pas
> ===================================================================
> --- eventcodetool.pas (revision 9470)
> +++ eventcodetool.pas (working copy)
> @@ -199,7 +199,9 @@
> SetLength(ResultType,Len);
> Move(TypeData^.ParamList[Offset],ResultType[1],Len);
> inc(Offset,Len);
> - Result:=Result+':'+ResultType;
> +
> + if ResultType <> '' then
> + Result:=Result+':'+ResultType;
> end;
> if phpInUpperCase in Attr then Result:=UpperCaseStr(Result);
> Result:=Result+';';
Mattias
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives