Hi Pat,

Your tips seem to work, but I am hoping you also know the answer to the next 
problem.
See example 1 : After replacing the text with ST SET 
TEXT($wp_obj;$text;$start_pos;$end_pos) the cursor must be set after the last 
inserted character. This replacing is done in the On After Keystroke event of 
the Write Pro area and is triggered when the user types a space. However, I 
don't succeed in setting the cursor at the end of the inserted text, it stays 
at the position where it was (position after the original space)

Do you also have a tip how to set the cursor to a different position in the "On 
After Keystroke" event of the Pro Area?

Thanks,

Piotr


> -----Oorspronkelijk bericht-----
> Van: Pat Bensky <pben...@gmail.com>
> Verzonden: dinsdag 12 juni 2018 13:40
> Aan: 4D iNug Technical <4d_tech@lists.4d.com>
> Onderwerp: Re: Write Pro: programmatically manipulate text expertise needed
> 
> Piotr,
> 1. I think you will need to use ST GET PLAIN TEXT to get all the text after 
> the
> specified range and then look for the first return character in that 
> selection. I
> believe this is the only way to get an accurate position with styled text.
> 
> 2. Again, use ST GET PLAIN TEXT to get a range of text from the cursor 
> position
> back n characters or to the beginning of the text.
> 
> HTH
> 
> Pat
> 
> On Tue, 12 Jun 2018 at 10:02, Piotr Chabot Stadhouders via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
> > Hi all,
> >
> > We are in the progress of migrating from 4D Write to Write Pro A lot
> > of things are going fine, but there is one area that seems easy but I
> > am having difficulties with it and that is programmatically
> > manipulating text
> >
> > I give 2 examples that maybe seem obvious to others but are not for me:
> >
> >   1.  I am in a procedure where I have an Write Pro object (not perce
> > an area on screen, could be a range) and an expression has been
> > selected via $type:=ST Get content
> > type($wp_obj;$start;$end;$startBlock;$endBlock). I call the command ST
> > SET TEXT($wp_obj;$text;$startBlock;$endBlock) to replace the selected
> expression. So far no problems, but here it comes...
> > Now I want to find the first occurrence of a carriage return in the
> > text that comes after the replaced text (end inserted text - end whole 
> > text).
> > What is the best / easiest way to do this? Remember, this text can
> > contain styled text and/or expressions and/or pictures
> >   2.  Example 2 is like example 1 but now with an actual visual area.
> > The user types a couple of characters. At a certain point after typing
> > I want to procedurally replace the typed text from the cursor back
> > until the first space and replace it with another text. Maybe somebody
> > knows "Type it for me", this is what I am talking about. So, what is
> > the best way to find the first occurrence of a space from the cursor
> > back and replace this text with another text?
> >
> > Thanks in advance,
> >
> > Piotr
> >
> >
> ****************************************************************
> ******
> > 4D Internet Users Group (4D iNUG)
> > FAQ:  http://lists.4d.com/faqnug.html
> > Archive:  http://lists.4d.com/archives.html
> > Options: https://lists.4d.com/mailman/options/4d_tech
> > Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >
> ****************************************************************
> ******
> 
> 
> 
> --
> *************************************************
> CatBase - Top Dog in Data Publishing
> tel: +44 (0) 207 118 7889
> w: http://www.catbase.com
> skype: pat.bensky
> *************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to