Re: [Win32Lib] type in mle after select item from tree view?

new topic     » goto parent     » topic index » view thread      » older message » newer message

Try this...

*Move the mouse pointer to outside of the treeview.
*Press CTRL-TAB until the treeview has focus.
*Use the Up/Down arrow keys to change the selected treeview item (Note that
the editbox doesn't change).
*Now move the mouse back into the treeview (The editbox suddenly changes)

----------------
cheers,
Derek Parnell
----- Original Message -----
From: "Dan Moyer" <DANIELMOYER at prodigy.net>
To: "EUforum" <EUforum at topica.com>
Sent: Tuesday, November 26, 2002 12:40 AM
Subject: Re: [Win32Lib] type in mle after select item from tree view?


>
> Derek,
>
> Thanks!  What a weird approach; after trying to beat it into my brain,
"use
> onChange" for lists & TVs, here you go & use "onClick"!  ;)  But it seems
to
> work, what makes you say it's not foolproof?  Double-clicking is the only
> thing I've found that sets focus back to the TV.
>
> Dan
>
>
> ----- Original Message -----
> From: "Derek Parnell" <ddparnell at bigpond.com>
> To: "EUforum" <EUforum at topica.com>
> Sent: Monday, November 25, 2002 5:02 AM
> Subject: Re: [Win32Lib] type in mle after select item from tree view?
>
>
> > Hi Dan,
> > I've got something working.
> >
> > The problem seems to be that Windows grabs focus again when you release
> the
> > mouse button. The method below is not foolproof but it works kinda...
> >
> > Just replace the event handler code and setHandler() thus...
> >
> >
> > object w w = -2
> > procedure TreeView2_onChange (integer self, integer event, sequence
> > params)--params is ()
> >     object x
> >
> >     if event = w32HClick then
> >         w = -1 -- Begin processing mouse movements.
> >     else
> >         if params[1] = WM_MOUSEMOVE and equal(w,-1) then
> >             x = getTVIndex(TreeView2)
> >             if equal(w,x) = False then
> >                 setText(MleText3, "Item " &
sprint(getTVIndex(TreeView2))
> &
> >                      CrLf & "I would like that the user could start " &
> >                       "entering text at the end of this text immediately
> > after selecting a TV item," &
> >                       " without having to click the mouse over here
first.
> "
> > &
> >                       " Focus was just set here, but doesn't seem to
> work.")
> >                 setFocus(MleText3)
> >                 setIndex(MleText3, {1,0}) -- hilite all the text.
> >                 w = x
> >             end if
> >         end if
> >     end if
> > end procedure
> > setHandler( TreeView2, {w32HEvent, w32HClick},
> > routine_id("TreeView2_onChange"))
> >
> >
> > ----------------
> > cheers,
> > Derek Parnell
> > ----- Original Message -----
> > From: "Dan Moyer" <DANIELMOYER at prodigy.net>
> > To: "EUforum" <EUforum at topica.com>
> > Sent: Monday, November 25, 2002 6:14 PM
> > Subject: [Win32Lib] type in mle after select item from tree view?
> >
> >
> > > I have a TreeView and a multi-line edit box in a program; I'd like
that
> > when
> > > the program user selects an item from the TV, they could immediately
> begin
> > > to enter text into the mle.  But when I setFocus at the end of a TV
> change
> > > event, it doesn't do that.  I have to *click* on the mle before I can
> > enter
> > > text. Am I doing something wrong?  problem demo follows below.
> > >
> > > Dan Moyer
> > >
> > > --<code begins>
> > >
> > > --  code generated by Win32Lib IDE v0.14.2
> > >
> > > include Win32lib.ew
> > > without warning
> > >
> >
> --------------------------------------------------------------------------
> > --
> > > ----
> > > --  Window Window1
> > > constant Window1 = createEx( Window, "Window1", 0, Default, Default,
> 400,
> > > 300, 0, 0 )
> > > constant TreeView2 = createEx( TreeView, "TreeView2", Window1, 12, 12,
> > 176,
> > > 248, or_all({TVS_HASLINES,TVS_LINESATROOT,TVS_SHOWSELALWAYS}), 0 )
> > > constant MleText3 = createEx( MleText, "", Window1, 208, 16, 176, 244,
> 0,
> > > 0 )
> > > ---------------------------------------------------------
> >
>
> --------------------------------------------------------------------------
> > --
> > > ----
> > > constant CrLf    = { '\r', '\n' }
> > > integer dummy
> >
>
> --------------------------------------------------------------------------
> > --
> > > ----
> > > procedure Window1_onActivate (integer self, integer event, sequence
> > > params)--params is ()
> > >   for n = 1 to 10 do
> > >         dummy = addTVItem(TreeView2, 0,0, sprint(n), 0)
> > >   end for
> > >   setText(MleText3, "Click on a Tree View item")
> > > end procedure
> > > setHandler( Window1, w32HActivate, routine_id("Window1_onActivate"))
> >
>
> --------------------------------------------------------------------------
> > --
> > > ----
> > > procedure TreeView2_onChange (integer self, integer event, sequence
> > > params)--params is ()
> > >       setText(MleText3, "Item " & sprint(getTVIndex(TreeView2)) &
> > >                  CrLf & "I would like that the user could start " &
> > >                   "entering text at the end of this text immediately
> after
> > > selecting a TV item," &
> > >                   " without having to click the mouse over here first.
"
> &
> > >                   " Focus was just set here, but doesn't seem to
work.")
> > >       setFocus(MleText3)
> > > end procedure
> > > setHandler( TreeView2, w32HChange, routine_id("TreeView2_onChange"))
> > >
> > >
> > > WinMain( Window1,Normal )
> > >
> > > --<code ends>
> > >
> > >
>
>
>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu