Thanks you!  I'll give this a try, and I'll give the layout again:
There are 13 fields on a particular screen, and some have their field's
label above the field, some to the left, and one or two to the right of the
field's contents area.
Some field labels are single words, such as "Fax:", and some are two words,
such as "Last Name:", and some are three words, such as "Alternate Contact
Phone:".
Some areas have more than one field per line, and the "SayField" reads
across the entire line, not stopping at the end of the current field, and
restricting the cursor reads only the field's contents.
Each field has a different Control id, but it changes each time that screen
is entered.  All the fields on that screen have the same Window type,
(Edit), and all have the same handle, which is different at each loading of
that screen.
I've tried convoluted scripts that would check for the presence of a word to
the left of the beginning of the edit field, or above the edit field, but
wasn't successful at getting it to determine what was the beginning of a
multi-worded label, and what was the previous field's contents.
Currently, a frame around each field, as well as it's label, and have that
frame announced when focus has changed is about the only reliable means of
getting the appropriate label to read when the appropriate field gets
focus--at least this method seems to be the least code needed...it takes
frames out the wazoo, but unless JFW has some limit on the number of frames
one application can handle, this might be the only practical means that
doesn't force the screen reader to check for several conditions before
announcing an item.
I do indeed appreciate this suggestion, and I'll give it a try on QB6...I
can already see another couple of areas in that application where your
suggestion could come in handy!

Question:  How does one force a particular control to keep the same control
id whenever the program is loaded?  For example, in the Outlook Express
header file, it has the "Subject:" field with the same control id every time
that app is loaded--how does it do that?  One of the limitations on writing
these QB6 scripts is that the controls have a different id number with each
loading?  I'd much rather trigger on some static id than depend on frames,
mainly due to the fact that QB6 has areas that can be customized to the
individual user's liking, and sticking to specific frames at specific
locations on any given screen restricts what customizing a user can do...it
seems like identifying a specific control, and acting on that control
conditionally would be more flexible.
That is just a few questions I've been seeking answers to!

I really appreciate your feedback and comments...wish more script gurus
would hop in with their thoughts as well!

Thanks,
Dennis Brown
[EMAIL PROTECTED]


-----Original Message-----
From: Daine Pearson <[EMAIL PROTECTED]>
To: '[EMAIL PROTECTED]' <[EMAIL PROTECTED]>
Date: Thursday, January 21, 1999 2:16 PM
Subject: RE: Script questions, again.


>Dennis,
>
>I sent this direct but it got bounced back so i hpe you se this here.
>
>Sorry for the delay, been having some computer troubles here and am
thinking
>about doing a clean install. But I really don't feel like it.
>
>Anyway, one more dumb question. Have you also tried changing the Search for
>Prompt setting in the Advanced settings section of configuration manager?
>
>Outside of that I would work on a script using SayFocusedWindow().
>Copy the SayFocusedWindow() script from below into your Quickbooks script.
>That should be triggered each time you move fields.
>Are the field names always in the same place in relation to the field? If
so
>you could trim out the un-needed stuff below.
>Not knowing the screen I can not be too helpful so I am writing this kind
of
>out of my head and am not sure if it is all correct but give it a try.
>
>Void Function SayFocusedWindow ()
>
>;This should work around the field to find a prompt
>RouteJAWSToPc ()
>JAWSCursor () ;Make the JAWS cursor the active cursor, just to be sure it
>really is active
>
>SayString("Prior line") ;simply a verbal notification to tell you what part
of
>the script jaws is processing
>PriorLine () ;moves cursor up one line
>IF (GetWord () !="") Then ;if there is text there
> SayWord() ;You could also try Say Chunk or Say field
> PcCursor ()
> SayWindowTypeAndText (GlobalFocusWindow)
> Return
> else
> RouteJAWSToPc ()
>EndIF
>
>SayString("Next Word")
>NextWord ()
>IF (GetWord () !="") Then ;if there is text there
> SayWord() ;You could also try Say Chunk or Say field
> PcCursor ()
> SayWindowTypeAndText (GlobalFocusWindow)
> Return
> else
> RouteJAWSToPc ()
>EndIF
>
>NextLine ()
>IF (GetWord () !="") Then ;if there is text there
> SayWord() ;You could also try Say Chunk or Say field
> PcCursor ()
> SayWindowTypeAndText (GlobalFocusWindow)
> Return
> else
> RouteJAWSToPc ()
>EndIF
>
>SayString("Prior Word")
>PriorWord ()
>IF (GetWord () !="") Then ;if there is text there
> SayWord() ;You could also try Say Chunk or Say field
> PcCursor ()
> SayWindowTypeAndText (GlobalFocusWindow)
> Return
> else
> RouteJAWSToPc ()
>EndIF
>EndFunction
>
>
>
>
>If that does not work, it is also possible to get the X and Y coordinates
of
>the PC cursor for each field and use them to activate a say string with the
>correct field name in it but that is much more work to write.
>
>Or, perhaps you have already gotten more expert help
>
>Daine
>
>On Thursday, January 14, 1999 5:24 PM, [EMAIL PROTECTED]
>[SMTP:[EMAIL PROTECTED]] wrote:
>> The current application is QuickBooks Pro version 6, but the concept fits
>> any number of applications that may have several fields on a single
screen,
>> and with their labels in different locations from their data fields.  If
the
>> program in question has a means of setting the field label's color
>> attributes different from the content's attribute, then at least that
gives
>> something to trigger on, but most just  color all labels one color, and
all
>> content fields another color.
>>
>> Thanks,
>> Dennis Brown
>> [EMAIL PROTECTED]
>>
>>
>> -----Original Message-----
>> From: Daine Pearson <[EMAIL PROTECTED]>
>> To: '[EMAIL PROTECTED]' <[EMAIL PROTECTED]>
>> Cc: '[EMAIL PROTECTED]' <[EMAIL PROTECTED]>
>> Date: Wednesday, January 13, 1999 5:06 PM
>> Subject: Script questions, again.
>>
>>
>> >Dennis,
>> >
>> >I am no script expert but perhaps I can help a bit.
>> >
>> >I was wondering:
>> >what application is this?
>> >Is it a true 32 bit Win95 or 98 program? It sounds lika an older Win3x
>> program?
>> >
>> >I assume you have tried re-classifying the controls?
>> >
>> >Daine
>> >
>> >you wrote...
>> >From: [EMAIL PROTECTED]
>> >Date: Tue, 12 Jan 1999 19:07:49 -0800
>> >Subject: Script questions, again.
>> >
>> >I asked  this a week or so ago and didn't really get an answer, so I'll
>> toss
>> >it out again...
>> >What do you do to identify a particular field on a screen full of
several
>> >fields, all the same class, and all having different Control Id and
Handles
>> >whenever the screen is present?  For example, if you have a Last Name
>> field,
>> >a First name field, and a Address field, and they are all of the Edit
>> class,
>> >and the labels are above, to the left, and below the field's contents.
>> >How do you identify each field in a routine that checks it's id before
>> >having JFW read it's particular label when tabbing to that field?
>> >Since JFW won't read the label to the fields, you have to specifically
>> force
>> >JFW to read the field's label using the Invisible cursor before
announcing
>> >the field's contents.
>> >If the field's handle and control id are different every time that
screen
>> is
>> >present, what do you have JFW look at in order to know which direction
to
>> >have the invisible cursor read that particular field's label?
>> >At present, I am using a frame around each field's label and contents,
and
>> >having the Tab and Shift+Tab keys move to the new field, then
>> >ReadFrameAtCursor.  This particular screen has 15 fields, some with
their
>> >labels on top of the field, some to the left, and some to the right.  Is
>> >there a more efficient means of getting that field label to read before
the
>> >contents of the field?
>> >What am I missing in the scripting procedure that will assign a specific
>> >identifier to each field that will stay the same every time that screen
is
>> >loaded?
>> >
>> >Is there a script-specific mailing list anywhere, or a specific e-mail
>> >address to a script guru that I can address my questions to?
>> >
>> >Thanks,
>> >Dennis Brown
>> >brown9
>> >
>> >-
>> >Visit the jfw ml web page: http://yoyo.cc.monash.edu.au/~nallan/jfw
>
>
>
>
>
>
>-
>Visit the jfw ml web page: http://yoyo.cc.monash.edu.au/~nallan/jfw

-
Visit the jfw ml web page: http://yoyo.cc.monash.edu.au/~nallan/jfw

Reply via email to