[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: Non consecutive line numbers with textEditor component


Le 25/07/2024 à 14:10, Bruce Steers a écrit :

On Thu, 25 Jul 2024 at 11:46, Stéphane Aulery <lkppo@xxxxxxx <mailto:lkppo@xxxxxxx>> wrote:



    With the first technique we couldn't simply overload the component
    class?

I do not quite understand what you mean by overload?

If you import the gb.form.editor to modify it you will either have to remove the standard gb.form.editor component from the project properties or rename all the imported components and rename all their internal references.

Automatic Inheritance can be a way or normal Inheritance but there are problems with "simple overrides" Using Automatic Inheritance (make a file called TextEditor.class in your project and it automatically Inherits gb.form.editor/TextEditor) Use a File of another name (like MyTextEditor.class) and use "Inherits TextEditor" to make it inherit TextEditor.class

In my experience if for example I "only" imported the TextEditor.class file and kept gb.form.editor in my properties but did not import the whole gb.form.editor component I will likely get "incorrectly overridden" errors. It seems to workhaving a class of the same name and overriding "some" of the properties/methods but the whole original file never seems to work.

The cross-over from being able to use Inheritance or having to import the whole source depends on if your modifications need to use Private internal properties of the inherited class. Meaning if your override can use Publicly accessible properties (for example the TextEditor.Text property) then you an use Inheritance and use Me.Text to get the Text, but if you want to access/modify something like the Private $cDiffLayout variable there is no way to get to it as it is private to the components TextEditor.class not your projects version.  In that case the only way to access and modify private stuff is to import the component.

PS, keep an eye out for useful _hidden commands (they begin with underscore _ ) that can help like for example TextEditor1._GetDocument() that returns the editors CDocument object.

Experimentation be the mother of progression :)

Thank you for these detailed explanations. I'm going to experiment. I'm trying to at least take the right general direction by asking questions.

--
Stéphane Aulery