1. Win32Lib MleText selections

I haven't been able to find anything about this specific issue in the message
archives, but maybe I just missed it.  I want to select the first instance 
of a particular phrase programmatically so that the next call to 
getSelectedText(myMLE) returns that phrase.  I've noticed that the autoSelect
function selects ALL the text in a control, but I want to be able to select a
single range of text.  If that's not possible, then I should at least be able 
to move the caret to the beginning of that word or phrase.

TIA,
Mike

new topic     » topic index » view message » categorize

2. Re: Win32Lib MleText selections

> I haven't been able to find anything about this specific issue in the mes=
sage
> archives, but maybe I just missed it.  I want to select the first instanc=
e
> of a particular phrase programmatically so that the next call to
> getSelectedText(myMLE) returns that phrase.  I've noticed that the autoSe=
lect
> function selects ALL the text in a control, but I want to be able to sele=
ct a
> single range of text.  If that's not possible, then I should at least be =
able
> to move the caret to the beginning of that word or phrase.

have you tried setIndex( Mle, {Start, End} )  ??

~Greg

new topic     » goto parent     » topic index » view message » categorize

3. Re: Win32Lib MleText selections

Michael J. Sabal wrote:
> 
> I haven't been able to find anything about this specific issue in the message
> archives, but maybe I just missed it.  I want to select the first instance 
> of a particular phrase programmatically so that the next call to 
> getSelectedText(myMLE) returns that phrase.  I've noticed that the autoSelect
> function selects ALL the text in a control, but I want to be able to select
> a
> single range of text.  If that's not possible, then I should at least be able
> 
> to move the caret to the beginning of that word or phrase.
> 

  setIndex(myMLE, {start, end})

where 'start' and 'end' are integers containing the positions of the first and
last character in the phrase.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

4. Re: Win32Lib MleText selections

Derek Parnell wrote:
>   setIndex(myMLE, {start, end})
> 
> where 'start' and 'end' are integers containing the positions of the first and
> last character in the phrase.
> 
> -- 
> Derek Parnell
> Melbourne, Australia
> Skype name: derek.j.parnell

Thanks.

new topic     » goto parent     » topic index » view message » categorize

5. Re: Win32Lib MleText selections

Michael J. Sabal wrote:
> 
> I haven't been able to find anything about this specific issue in the message
> archives, but maybe I just missed it.  I want to select the first instance 
> of a particular phrase programmatically so that the next call to 
> getSelectedText(myMLE) returns that phrase.  I've noticed that the autoSelect
> function selects ALL the text in a control, but I want to be able to select
> a
> single range of text.  If that's not possible, then I should at least be able
> 
> to move the caret to the beginning of that word or phrase.

Here's the final routine.  Thanks again for the help.

global procedure onClick_FindinDoc(integer self, integer event, sequence params)

  object junk
  atom pos
  sequence buffer, query

  -- ViewX12 is an MleText control
  -- ViewFindinDocEdit is an EditText control

  buffer = getText(ViewX12)
  query = getText(ViewFindinDocEdit)
  pos = match(query,buffer)
  if pos > 0 then
    setFocus(ViewX12)
    setIndex(ViewX12,{pos,pos+length(query)})
    junk = sendMessage(ViewX12, EM_SCROLLCARET, 0, 0)
  elsif isEnabled(ViewNextButton) then
onClick_ViewNextButton(self,event,params)  -- refresh the MleText control
    with the next page of data
    onClick_FindinDoc(self,event,params)  -- recursive event
  end if

end procedure
setHandler(ViewFindinDocButton,w32HClick,routine_id("onClick_FindinDoc"))


new topic     » goto parent     » topic index » view message » categorize

6. Re: Win32Lib MleText selections

Oops, I forgot to include the count(x,y) function:

function count(object lookin, object lookfor)

  atom found
  found = 0

  if atom(lookin) and sequence(lookfor) then
    return 0
  elsif atom(lookin) and atom(lookfor) and lookin=lookfor then
    return 1
  elsif atom(lookin) and atom(lookfor) and lookin!=lookfor then
    return 0
  else
    for ctr = 1 to length(lookin) do
      if compare(lookin[ctr],lookfor)=0 then
        found = found + 1
      end if
    end for
    return found
  end if
end function


new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu