Compiler complains that a public method does not exist

Posted by Darren Parr on 24-Oct-2012 09:43

Hi

I have created an ABL inherited control of the ultratree and created a piece of code as follows in my customised control

METHOD PUBLIC VOID testme ():

      MESSAGE "OK".

    END METHOD.

Next I have droped my customised treeview control into a form and am calling it as follows.

THIS-OBJECT:oTree:testme(). /* or oTree:testme() */

Developer studio lets me pick the method and shows it to me in the editor as soon as I type a ":" after oTree, but it fails a syntax check with error 12927 caying it could not locate element testme in class customtree.

Any help is greatly appreciated.

Have I done something daft.

Thanks

Darren

All Replies

Posted by Admin on 24-Oct-2012 10:03

First guess: Restart the Project AVM.

Second guess: Recompile a bunch of files.

Posted by Darren Parr on 24-Oct-2012 10:13

Hi

Thanks. I tried that and still no joy.

Its strange that the ultratree methods as available and check OK. Any methods I add (public) are not found.

Regards

Darren

Here is a code snippet...

USING Progress.Lang.*.

USING Infragistics.Win.UltraWinTree.UltraTree.

CLASS OSL.OSLTree INHERITS UltraTree:

DEFINE PRIVATE VARIABLE components AS System.ComponentModel.IContainer NO-UNDO.

CONSTRUCTOR PUBLIC OSLTree (  ):

        SUPER().

        InitializeComponent().

        CATCH e AS Progress.Lang.Error:

            UNDO, THROW e.

        END CATCH.

END CONSTRUCTOR.

METHOD PRIVATE VOID InitializeComponent(  ):

        /* NOTE: The following method is automatically generated.

        We strongly suggest that the contents of this method only be modified using the

        Visual Designer to avoid any incompatible modifications.

        Modifying the contents of this method using a code editor will invalidate any support for this file. */

        CAST(THIS-OBJECT, System.ComponentModel.ISupportInitialize):BeginInit().

        THIS-OBJECT:SuspendLayout().

        /*  */

        /* OSLTree */

        /*  */

        THIS-OBJECT:DisplayStyle = Infragistics.Win.UltraWinTree.UltraTreeDisplayStyle:WindowsVista.

        CAST(THIS-OBJECT, System.ComponentModel.ISupportInitialize):EndInit().

        THIS-OBJECT:ResumeLayout(FALSE).

        CATCH e AS Progress.Lang.Error:

            UNDO, THROW e.

        END CATCH.

END METHOD.

    METHOD PUBLIC VOID TestMe():

    END METHOD.

DESTRUCTOR PUBLIC OSLTree ( ):

IF VALID-OBJECT(components) THEN DO:

CAST(components, System.IDisposable):Dispose().

END.

END DESTRUCTOR.

END CLASS.

Posted by Admin on 24-Oct-2012 10:18

THIS-OBJECT:oTree:testme()

What type is oTree of?

Posted by Darren Parr on 24-Oct-2012 10:22

Hi

The following is in the class def on my form.

DEFINE PRIVATE VARIABLE oTree AS OSL.OSLTree NO-UNDO.

-Darren

Posted by Darren Parr on 24-Oct-2012 11:02

Hi

Just tried something else. Created a user control, dropped the ultratree onto it and created the same method. It still shows it but does not compile.

Its like I can't drop any object into my form and have it work.Time for support I think.

-D

Posted by Darren Parr on 24-Oct-2012 14:19

Doh! At last I found it. Some r-code was being left in the source code folder and it was making it impossible to check syntax.

Posted by SJProgress on 24-Oct-2012 14:23

Vielen Dank für Ihre Nachricht!

Ich werde ab Mo. 29.10.2012 wieder im Büro sein und Ihre Email-Nachricht bearbeiten.

Mit freundlichen Grüssen

Josef Siegetsleitner, Easyrent Software Entwicklung

Thank you for your message!

I will return to my office on October, 29th and will answer your email then.

Best regards

Josef Siegetsleitner - Easyrent Software Development

This thread is closed