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.
Another question is, how to create Private methods, is there a way to do
it, or do we need a new implementation?
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+';';
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives