1. RE: How can I make a field ready to receive typing?
- Posted by Rangi <totorangi at hotmail.com> Oct 08, 2003
- 382 views
Louis Never had a problem with setFocus when used within a w32HActivate routine. However, I have often used it followed by a setIndex in order to position the cursor at some point within the editText field or to select all the text in a prefilled field. You could try that..... Rangi Louis at cwshop.com wrote: > > > OK, Thanks. I tried it and > WinMain( {firstwindow, focuscontrol}, Normal ) > Does exactly the same thing as setFocus(focuscontrol). > Oh well. > > Wishlist items: > Add a line to Win32Lib: > global constant WS_NO_RESIZE = {WS_CAPTION,WS_SYSMENU} > > And, as time permits, add a short comment to constants like this in the > source that describes what they do, in lieu of documentation. Then I > could browse (and search) Win32Lib source to find the flags that I need, > since they are not listed in the main documentation. Even mentioning in > the documentation where constants starting with "WS_" (and other > prefixes too) are used would be of some help. For example, in the > documentation for "create()", you could mention that the names for flag > constants start with "WS_" and for createEx() you could say what the > prefix for exFlags constants are. > > Louis. > > *********** REPLY SEPARATOR *********** > > On 10/8/2003 at 2:14 PM Derek Parnell wrote: > > > > >----- Original Message ----- > >From: <Louis at cwshop.com> > >To: "EUforum" <EUforum at topica.com> > >Sent: Wednesday, October 08, 2003 8:47 AM > >Subject: How can I make a field ready to receive typing? > > > >> My windows are working fine. However, when the input window opens, the > >cursor is nowhere to be seen. I must either click on the input field or > >hit TAB to produce a cursor so that I can type in the field. > > > >Try this ... > > > > WinMain( {firstwindow, focuscontrol}, Normal) > <snip> > >
2. RE: How can I make a field ready to receive typing?
- Posted by Matt Lewis <matthewwalkerlewis at yahoo.com> Oct 09, 2003
- 381 views
> From: Louis at cwshop.com [mailto:Louis at cwshop.com] > > > OK Derek, thanks for your help. Your example does work, BUT... > > What I am trying to do is open a window at the beginning of > the program to check for a password, and if entered > correctly, then close the password window and open the main > window. I find the initial window is considered the "main" > window and I cannot close it without killing off the entire > windowing system. Therefore, I open a secondary window to > prompt for the password, but when I do this I must click on > the field or tab to it before typing is possible. > > > procedure Open_Win2(integer self, integer event, sequence parms) > openDialog(Win2) > setFocus(Text21) -- This doesn't do anything > end procedure > setHandler(MainWin, w32HActivate, routine_id("Open_Win2")) You need an onActivate handler for Win2: procedure Activate_Win2(integer self, integer event, sequence parms) setFocus(Text21) end procedure setHandler(Win2, w32HActivate, routine_id("Activate_Win2")) The reason for this is that when you use openDialog(), you start a nested message loop, so the call to setFocus() doesn't happen until the dialog is closed. Matt Lewis
3. RE: How can I make a field ready to receive typing?
- Posted by Louis at cwshop.com Oct 10, 2003
- 382 views
Here are the results of your suggestions on my Win2000 SP4 system: Suggestion 1: Remove setFocus from Open_Win2 and add: procedure Activate_Win2(integer self, integer event, sequence parms) setFocus(Text21) end procedure setHandler(Win2, w32HActivate, routine_id("Activate_Win2")) Result: The password field does get focus, because one TAB takes me to= Text22, however the password field does not open for input. No cursor.= Typing does not appear in the window (or anywhere else). Both windows= are visible and when the password window is closed, the initial focus= window is fully exposed and has not changed size. Suggestion 2: Change openDialog to OpenWindow Result: Works in the simple example, but in the real application execution= proceeds beyond the OpenWindow and I loose control - the code immediately= following gets run without waiting for the PW window to close, but I can= move that code somewhere else. Suggestion 3: Put the main window off screen initially. That's real cute. I never would have thought of that; I would have= supposed it would result in an error. What I have been doing is to place= the password window exactly on top of the main window, but the user can= move the password window and expose it. Suggestion 4: Make the password window modal. Good point. Maybe not necessary if the main window is off screen, but= still a good idea. Comment by Derek: Here's how it works for me: 1. Password text field is highlighted upon start. 2. When password dialog is dismissed, main screen comes in at position= 0,0 and size 300,300 as defined. Do you mean that the main window is not visible until the password window= is closed? On my system they both appear at the outset with the password= window in front of the main window. Suggestion 5: procedure MyWin_onActivate (integer self, integer event, sequence params)--params is () I understand that the onXXX functions should not be used for new code.= They also kill the setHandler statements. ------------- This has been really educational. I hope others have learned as much as I= have. I'm not closing the discussion, but I think I have learned enough= to make my application work the way I want. Although there is a practical= need for the program I am writing, I am also doing it for fun. I have= been known to rip out perfectly good code and replace it with something= that is more elegant or beautiful when I learn more. Thanks, guys. Louis.
4. RE: How can I make a field ready to receive typing?
- Posted by Michael Wisolmerski <MWisolmerski at mayors.com> Oct 10, 2003
- 387 views
Derek - Ditto for me. I get the same results with my WIN98. I also have the same versions that C.K. has. Mike W. C. K. Lester wrote: > > > > > Here's how it "works" for me: > > > > > > 1. Password text field not highlighted upon start. > > > 2. When password dialog is dismissed, main screen comes in with size 0,0 > > > (not 300,300 as defined). > > > > > > I'm using Win2K, EU2.4, and Win32Lib latest 'n' greatest. > > > > Here's how it works for me: > > 1. Password text field is highlighted upon start. > > 2. When password dialog is dismissed, main screen comes in at position > > 0,0 > > and size 300,300 as defined. > > I'm using WinME, EU2.4, and Win32Lib latest. > > Derek, FYI... > > I just tried the code on my Win98, Win32Lib 0.59, and EU2.4 and got the > exact same results as I got on my Win2K box, namely: > > 1. Password text field not highlighted upon start. (Pressing TAB gets me > into "Text22" box.) > 2. When password dialog is dismissed, main screen comes in with size 0,0 > (not 300,300 as defined). > >
5. RE: How can I make a field ready to receive typing?
- Posted by cheetah_heels at myrealbox.com Oct 11, 2003
- 409 views
All, Same result here. I have WinXP Home, Eu 2.4, and Win32Lib 59.1. Andrew Hall -----Original Message----- From: Michael Wisolmerski [mailto:MWisolmerski at mayors.com] Subject: RE: How can I make a field ready to receive typing? Derek - Ditto for me. I get the same results with my WIN98. I also have the same versions that C.K. has. Mike W. C. K. Lester wrote: > > > > > Here's how it "works" for me: > > > > > > 1. Password text field not highlighted upon start. > > > 2. When password dialog is dismissed, main screen comes in with size 0,0 > > > (not 300,300 as defined). > > > > > > I'm using Win2K, EU2.4, and Win32Lib latest 'n' greatest. > > > > Here's how it works for me: > > 1. Password text field is highlighted upon start. > > 2. When password dialog is dismissed, main screen comes in at position > > 0,0 > > and size 300,300 as defined. > > I'm using WinME, EU2.4, and Win32Lib latest. > > Derek, FYI... > > I just tried the code on my Win98, Win32Lib 0.59, and EU2.4 and got the > exact same results as I got on my Win2K box, namely: > > 1. Password text field not highlighted upon start. (Pressing TAB gets me > into "Text22" box.) > 2. When password dialog is dismissed, main screen comes in with size 0,0 > (not 300,300 as defined). > > TOPICA - Start your own email discussion group. FREE!
6. RE: How can I make a field ready to receive typing?
- Posted by Louis at cwshop.com Oct 11, 2003
- 391 views
This is interesting. It appears that "setCtlPosition(MainWin, 0,0)" does not do what I first= assumed. This is more clear if the main window opens initially at= 200,200,.... When setCtlPosition() executes, the main window is NOT= moved. The top left corner is dragged to the specified coordinates,= enlarging the window. I expect that when the top left corner is dragged= down and to the right beyond the bottom right corner, the window will= shrink to the minimum size. To make it MOVE the window, we must use TWO commands instead: setCtlPosition(MainWin, 200, 200) -- Push the bottom right corner into= place setCtlPosition(MainWin, 0, 0) -- Stretch the window by the upper= left corner to size Is that what setCtlPosition() is supposed to do? Louis. *********** REPLY SEPARATOR *********** On 10/10/2003 at 6:01 PM cheetah_heels at myrealbox.com wrote: > > >All, > >Same result here. I have WinXP Home, Eu 2.4, and Win32Lib 59.1. > >Andrew Hall
7. RE: How can I make a field ready to receive typing?
- Posted by Elliott Sales de Andrade <quantum_analyst at hotmail.com> Oct 11, 2003
- 392 views
>From: Louis at cwshop.com >Subject: RE: How can I make a field ready to receive typing? > > >This is interesting. >It appears that "setCtlPosition(MainWin, 0,0)" does not do what I first >assumed. This is more clear if the main window opens initially at >200,200,.... When setCtlPosition() executes, the main window is NOT moved. > The top left corner is dragged to the specified coordinates, enlarging >the window. I expect that when the top left corner is dragged down and to >the right beyond the bottom right corner, the window will shrink to the >minimum size. > >To make it MOVE the window, we must use TWO commands instead: >setCtlPosition(MainWin, 200, 200) -- Push the bottom right corner into >place >setCtlPosition(MainWin, 0, 0) -- Stretch the window by the upper >left corner to size > >Is that what setCtlPosition() is supposed to do? No, it is not working right. The problem is that getRect() returns the positions of the top-left and bottom-right corners, and that setRect() sets the top-left corner, and the *height*, and the *width*, not the position of the bottom-right corner. setCtlPosition() does not adjust for this. It should use getCtlSize() instead of getRect(). global procedure setCtlPosition(integer id, object x, object y) sequence lSize lSize = getCtlSize(id) setRect(id, x, y, lSize[1], lSize[2], 1) end procedure > >Louis. >
8. RE: How can I make a field ready to receive typing?
- Posted by Louis at cwshop.com Oct 11, 2003
- 366 views
Try this. I think this is exactly what I want. Louis. without warning include win32lib.ew integer MainWin, Win2 integer Text1 integer Text2 integer Text3 integer Text21 integer Text22 integer Text23 MainWin =3D create(Window, "Initial Focus",0, 0, 0, 300, 300, 0) Text1 =3D create(EditText, "Not here", MainWin, 5, 5, 200, 25, 0) Text2 =3D create(EditText, "This is it", MainWin, 5, 35, 200, 25, 0) Text3 =3D create(EditText, "Nor here", MainWin, 5, 65, 200, 25, 0) Win2 =3D create(Window, "Window 2", MainWin, 50, 50, 300, 300, 0) Text21 =3D create(EditText, "Password", Win2, 5, 5, 200, 25, 0) Text22 =3D create(EditText, "Text22", Win2, 5, 35, 200, 25, 0) Text23 =3D create(EditText, "Text23", Win2, 5, 65, 200, 25, 0) procedure Activate_MainWin(integer self, integer event, sequence parms) showWindow(MainWin, SW_HIDE) -- Hide main window openWindow(Win2, Normal) -- Window opens and execution continues setFocus(Text21) -- Set focus to password field end procedure procedure Close_Win2(integer self, integer event, sequence parms) showWindow(MainWin, SW_NORMAL) -- PW window closed, now open main= window end procedure setHandler(MainWin, w32HActivate, routine_id("Activate_MainWin")) setHandler(Win2, w32HClose, routine_id("Close_Win2")) WinMain(MainWin, Normal)