1. [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     » topic index » view message » categorize

2. 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 message » categorize

3. 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>
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 message » categorize

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

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 message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu