Discounting any considerations of the Tabcontrol Tabs themselves,
and what allows the user to switch back and forth between them, I thought
that the default behavior would have been as you said.  That is, if on the
first Tab of the TabControl, with the first Frame being displayed, as soon
as the user tabs, ( using the tab key ), thru all controls on the frame, the
very next click of the Tab key would have selected the first of three
buttons on the form which are situated just below the bottom edge of the
TabControl.  Unfortunately this is NOT what happens!  Instead the next click
of the Tab key takes one back to the first control on the same frame!  This
is because even though the tabstops for the controls on the first frame go
from 0 to 5 in consecutive order, the three buttons on the form have
tabstops of 0 thru 2!  And that cannot be altered!  This I found is also the
way it works in Microsoft Office Winword!  
        Also, although I called it a wizard, it really doesn't work quite
like a normal one.  The three buttons at the bottom are "Help", "Cancel",
and "Okay", and must be available at all times, because although the user
MAY wish to go thru each of the four Frames via the TabControl's Tabs, he or
she isn't required to.  And I don't require a "Back" or "Next" button
because this particular Tabcontrol from Raize has them already built-in!
Personally I think these should have tabstops as well but they don't so as
I've set it up, the user can either use the mouse to switch from one tab on
the TabControl to another or use the back and forward keys.  
        My problem boils down to one of fluidity.  The particular style I
chose for the application is very flat with a lot of hot-focusing, and so
there is no visual distinction between the controls on the frames and the
three buttons on the form!  Therefore I expect to get more complaints about
this unless I can come up with another method of handling this.  And what I
would prefer to see it work like, is this:  When the user gets to the last
control on the first frame/first Tab of the TabControl, I would like the
next click of the Tab key to automatically focus the 2nd Tab of the
TabControl, thus exposing Frame two, and select the frame's first control.
When the user gets to the last control on that frame, the next click of the
tab key takes them to the third Tab of the tabControl, exposing Frame 3 and
focusing its, ( I almost did it again! <g> ), first control.  This should
continue until one reaches the last control on the last frame/TabControl
Tab, after which a click of the Tab key would take one directly to the first
of the three main buttons below!  Naturally Shift + Tab key should move
focus in reverse, also switching between tabcontrol tabs when necessary.
And finally, if the user would decide to use one of the three buttons BEFORE
getting to the last control on the last frame, another Tab key + combination
would provide the necessary branch.
        What I'm looking for may not be standard behavior, but it's what
they want, and I really can't disagree because even though I'm not a
keyboard person myself, it seems like a more natural way to progress through
the wizard than any other!  

from Robert Meek dba Tangentals Design  CCopyright 2006

"When I examine myself and my methods of thought, I come to the conclusion
that the gift of Fantasy has meant more to me then my talent for absorbing
positive knowledge!"
                                                    Albert Einstein


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Rob Kennedy
Sent: Thursday, February 02, 2006 11:51 PM
To: Borland's Delphi Discussion List
Subject: Re: D2006 and TabStops

Robert Meek wrote:
> Old habits die hard!  I can't get my fingers to stop typing 
> apostrophes, but geesh, did everyone take a course in word and
> sentence structure while I was asleep, cause all of a sudden, and
> after at least 8 years on this list everyone is suddenly worried
> about my possessive pronouns! <g>  I could have sworn this was a
> Delphi list!

I commented on it because it clearly wasn't a typo -- it was a 
consistent mistake made several times throughout the message. If I 
hadn't had anything to say about the actual subject of your message, I 
assure you I wouldn't have commented on your spelling, either.

> In any case, I'm not sure you understood me because I don't know what
> you are referring to when you say "invisible controls"!

The controls on the other pages of the tab control. When the focus is on 
the last control on a page, you want the Tab key to switch to the next 
page and send focus to the first control on that page, right?

> As I said, I'm not really worried much about the Tab key being able
> to take the user from one Frame to another via the TabControl
> component's Tabs, so for now at least I turned that ability off.  If
> it becomes a problem for heavy keyboard users I'll override the
> method in a descendant and disallow the use of the Tab key in that
> particular instance.  But it's getting from the last control on any
> Frame, all of which are parented by the TabControl to the two buttons
> parented by the form that is causing me the problem.  Visually, it
> looks as if one should be able to continue tabbing from one to the
> other, but it doesn't work that way,

It doesn't? That's what I thought it did. Where does the focus go instead?

I thought I understood what you wanted in your previous message, but now 
I've decided I have no idea. What was the default behavior in your 
program, how does it behave now, and how do you want it to behave?

> If I add special handling to perhaps setfocus down to the first 
> button on the form when the user clicks the tab key from within the
> last control of each frame that might do it but that solution just
> doesn't seem to sit right with them either because it interrupts the
> flow as one works his way through the pages of the wizard.

If it's a wizard, then does it have "Next" and "Back" buttons? If so, 
then pressing Enter should do the same as pressing the "Next" button. 
That's not a double-key combination.

-- 
Rob
_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to