674 views
in GUI Development by

Hi

I encounter a problem when I enter or delete a character in Text Editor.

1.When I open the TextEditor, and enter the string of "12345%6789", then click the cursor position between the '5' and '%'.

As shown in the figure below

 

2.When the  cursor position is between the '5' and '%', then click the delete key. What I'm looking for is the string "1234%6789",but the result is the "12346789".

 

The version of Embedded Wizard I am using is 9.30.

Can you help me to resolve the question? How to do? Thank you very much!

 

Regards

Sancia

1 Answer

0 votes
by
Hello Sancia,

I confirm your observation. It seems to be a bug in the Text Editor template. I will evaluate the cause of the problem and provide you with instructions how to fix the issue.

Best regards

Paul Banach
by

Hello Sancia,

I think, I was able to find the cause of the error. The % sign, similar to ^ and ~ are special characters. To display them the character has to be prefixed explicitly by an additional % escape sign. This is handled correctly in the Text Editor component so far. However, as we enhanced Embedded Wizard by BIDI-Text (bidirectional) support, the methods responsible for position calculation were adapted. We overseen that the Text Editor component template also depends on the methods and we didn't update the Text Editor component template. We will fix this issue officially in the next version.

To continue working with your version (9.10 to 11.00) you would need to modify the Text Editor component as explained below. This is ok, since the Text Editor component is created from a template so you can edit it.

Step 1: The correction implies that you will add following code to the existing Text Editor implementation. Thus, as first step copy this code section:

var char  ch = Text.String[ newCaretIndex ];

// The caret points to a special control sign? In this case the sign comes
// together with the preceding '%' escape sign - otherwise the user couldn't
// see the sign. Adjust the caret position to refer the escape sign.
if (( ch == '^' ) || ( ch == '~' ) || ( ch == '%' ))
  newCaretIndex = newCaretIndex - 1;

Step 2: In the method onCursorKey paste the above code section as shown with the highlighted code lines:

Step 3: In the method onPressTouch paste the above code section as shown with the highlighted code lines:

Step 4: Do the same in the method onDragTouch:

I hope it solves the issue. Can you please verify it?

Best regards

Paul Banach

Ask Embedded Wizard - Archive

Welcome to the Ask Embedded Wizard archive. This community forum served us well for many years, but we've evolved our support approach!

Your resources:

The Embedded Wizard Online Documentation provides comprehensive documentation, tutorials, examples and ready-to-use software packages.

For dedicated assistance, explore our Embedded Wizard Product Support.

You can still browse the valuable discussions from our community history here.

Embedded Wizard Website | Privacy Policy | Imprint

...