Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

TABS GENSCRNX driver and screen activation

Status
Not open for further replies.

ChrisMc

Programmer
Apr 24, 2002
43
GB
I'm back to FPW26 after a long break (nice to be back!) I have an APP to build and decided to use Steven Black's TABS driver together with GENSCRNX, 3D etc. as they generate modern looking screens. I've generated a simple menu with a foundation read to handle two screens, both with 2 tabs (container screen set with two screens). If I run both screens they display fine and can be ACTIVATE'd by blipping from one to the other, BUT when focus is changed from one screen to the other the tabs change; ie if tab one is displayed, blipping on the screen ACTIVATES the screen but the tab immediately changes to tab two. The foundation read, menu code etc are all per EX1 in the Goodies directory; I'm doing nothing fancy.

Does anybody have a work round?
 
I have done a fair amount of GENSCRNX work and I have not run into this problem.

Therefore we might not be looking for a "work around" as much as we are looking to do it right.

What do you have defined within the SETUP code for each separate tab screen for the following:

* --- TABS Specific Directives ---
*:TABTITLE _______
*:TABLABEL _______

Most especially *:TABLABEL ?

Also I'd be interested in seeing how you are combining the tab screens to see if that is being handled correctly.

jrbbldr
jrbbldr@yahoo.com
 
Hi & thanks for the interest. The SETUP for the first screen is:

*:SCXDRV5 TABS
*:SCXDRV5 3DCTRL
*:SCXDRV5 3D
*:ALL3D
*:TABTITLE Customer Records
*:TABWCLAUSE ICON FILE "ICONS\CV502.ICO"
*:TABMESSAGE
*:TABNOCENTER
*:TABLABEL Basic
*:TABMARGIN 1
*:TABFOOTER 1
*:TABHEADER 1
*:TABSCXHEADER 1
*:TABSCXMARGIN 1
*:TABSCXFOOTER 1
*:TABNOCLOSE
*:TABWINDOWNAME Customer

They are combined as a screen set, the first (Basic) being at the top of the list. The second has the setup detailing the drivers only (as above) and
*:TABLABEL Transactions

I've been experimenting with these results:
If TAB2 Contains a List obj or a Popup obj (consistent for all data sources) the flip occurs. It does NOT occur with a field, button, radio or spinner objects.

I've been through the generator directives with a fine tooth comb, but I can't see it<g>

Thanks again
ChrisMc
 
jrbbldr, ChrisMc;

pm4ji; I am *very* interested in following this thread. I have experimented with, but never realy used any of the GENSCREENX or GENMENUX utilities.

Could I impose on you guys to continue this thread on line.

I'd love to follow and learn from your examples.

Regards - Wayne
 
Thanks again. For consistency, this is the SETUP of the second (and subsequent) screens:

*:SCXDRV5 TABS
*:SCXDRV5 3DCTRL
*:SCXDRV5 3D
*:TABLABEL Transactions
*:TABMESSAGE

I've generated a 3 screen set, the third of which has a List obj and the flip jumps from first to third.

Any help greatly appreciated
ChrisMc
 
Let's begin with a BIG disclaimer. I am not a GENSCRNX expert and what I have discovered (largely by trial and error) is, in no way, the only way to do things. Hopefully there are others MUCH more experienced that can also help you.

That said, here is what I have found works for me.

1. I have made certain to have the following programs &quot;pathed&quot; into my Foxpro development environment.
GENSCRNX.PRG
GENMENUX.PRG
TABS.PRG
INBROWSE.PRG
3D.PRG

(I've also included the other PRG's that came with my GENX.ZIP)

2. In my CONFIG.FPW I have included the following:
_GENSCRN = <your path>\GENSCRNX.PRG
_GENMENU = <your path>\GENMENUX.PRG
PLATONLY=ON

_SCXDRV1 = Standard
_SCXDRV5 = <your path>\Tabs
_SCXDRV5 = <your path>\InBrowse && ( **** Must be after Tabs **** )
_SCXDRV5 = 3d

With that in place my Compiles and/or Screen Builds will be handled correctly.

3. In the individual screen SETUP snippets I use something like:

* --- Load GENSCRNX Drivers ---
*:ALL3D

* --- TABS Specific Directives ---
*:TABTITLE Generate New R.A.
*:TABLABEL Account
*:TABMESSAGE 'Account'
*:TABNOCLOSE
*:TABNOFLOAT
*:TABMARGIN 1
*:TABHEADER 5
*:TABFOOTER 0
*:TABSCXFOOTER 0
*
* Note: &quot;tabheader 5&quot; is used to make room above the Tabs for TOP Screen
*

In the above example I have shown specific commands from one of my working &quot;tabbed&quot; screen sets. So your specific screens might have modified commands. I also have included a single &quot;generic&quot; TOP screen above the individual TAB screens (note the TABHEADER). That is not necessary, but for this example it works nicely to &quot;contain&quot; everything.

Also note that I do not again specify the *:SCXDRV5 since that is being done within the CONFIG.FPW when Foxpro first starts up.

4. I also have to take care about the size of the screen within the Layout. I want to make certain that it does not exceed the capabilities of the physical monitor. This seems obvious, but sometimes I have had to modify a size which logically should have worked, but didn't.

5. Now when I set up my project I create a new &quot;generic&quot; screen set and give it a unique name. I then Add to it the individual &quot;tab&quot; screens which I want to include together. Make certain that each screen is placed where you want it and that no screen is larget than the first &quot;tab&quot; screen.

6. When I Build my project everything is brought together into a single working &quot;tabbed&quot; screen set.

To repeat my original disclaimer, the above has worked for me numerous times, but not because I am any expert in GENSCRNX. If you continue to have difficulties, send me some screen files, I'll look them over and get back to you.

Good Luck,
jrbbldr
jrbbldr@yahoo.com

 
Firstly, many thanks for taking the time to reply. Although I don't have a copy of GENMENUX or INBROWSE (I'll search these out and have a good look<g>), my CONFIG.FPW is setup correctly, with the paths & driver entries.

It's a good point that putting the driver entries into the screen must be superfluous and I've now removed these. I've also experimented with the TABHEADER size, but all to no avail.

Another funny point is that if I put a breakpoint in the .SCR just before the READ statement and step through, it works correctly! I have checked versions just in case - TABS is v2.6a, GENSCRNX is v2.0 and 3D is v2.0, all of which seem to tally.

Anyway, I can't take up any more of your time; a work arround is to store the last displayed tab and call the TABVALID routine that TABS inserts to change the tab to the correct one. I've so far only done this with a button but I have no doubt it will work. Again, many thanks for trying to help.

ChrisMc
 
Well Well Well ... :)
I am a HUGE user of GenscrnX, 3D and Tabs (never liked InBrowse). In fact I have modified all three of these drivers to allow the following features:

- windows color schemes bleed thru to bg, 3d and tab effects :) (not the simple grey drab background) :)
- tabs are more rounded at the top
- tabs directive *:TabNoTitle so that container can be window INSIDE another screen(set)/container :)
- ability to toggle dynamic resizing of window under different screen resolutions than development.

I need more specific info, or a copy to see ... of your problem.

To me ... the problem sounds like _CUROBJ is interfering.
Both screens will have m.NoStack01 and m.NoStack02 as well as m.___TabsAA and m.___TabsBB. Keyboard stuffing of TAB or CTRL+F1 will also cause the next tab to be chosen.

I don't use foundation reads ... I just have code in the Activate clause of the main tab window. I check WONTOP() and move from there. _CUROBJ tells you where you are.
OBJVAR(_CUROBJ) shows name of object variable.

Regards,
Steven S
Professional Foxpro developer for DOS/Windows/Unix platforms since 1989.
clogic@yahoo.com
 
Steven;

Thank you so much for the reply. I've now dropped the approach to use WinLib from Soft Classics which is transparent.

Thanks again
ChrisMc
 
ugh ... i've seen their code ... bloated redraw ... HUGE! ;)
last time i checked they use arrays to &quot;simulate&quot; browse window integration ...still the same? hehehe

oh well .. have fun :)
Steven S
Professional Foxpro developer for DOS/Windows/Unix platforms since 1989.
clogic@yahoo.com
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top