ScreenIO - frames

Discussion about software products provided for the BR community and created by its members. This includes (but is not limited to): MyEdit, File IO, Screen IO, FNSnap, and Utilities written in other languages for use with Business Rules.

Moderators: Susan Smith, admin, Gabriel

Post Reply
Susan Smith
Posts: 717
Joined: Sun Aug 10, 2008 4:24 am
Location: Southern California

ScreenIO - frames

Post by Susan Smith »

Hello ScreenIO experts,

I plan to try a feature that I've never used up til now: frames. Would I use this feature to visually "group" items on the screen, or is the frames purpose more than that? In the attached screen shot (which is from a program that is NOT a screenIO screen yet), I have a vertical "action" section off to the right of the main information that is populated with buttons. I want to have a different background color there than I do for the rest of the screen, as it does here in my example. I may also add another vertical section to the left side of the window and show "status" items there. In both cases, I want those sections to stand out as separate from the main screen though I want the buttons on them to be responsive when I'm working anywhere in the screen. Would I use frames for this? I like the fact that I can have optional borders around these sections with frames, so I will probably try that as well.

I posted this question here in case any other ScreenIO users might be interested in the answers. No sense in hiding cool features, right? I never thought of REALLY using tabs until I saw Steve's presentation at the conference this year, so thanks for sharing your knowledge. If anyone IS using frames, I would love to see a screenshot to see what you are doing with them - PLEASE?

Thanks!

-- Susan
sample screen where I want to implement frames in ScreenIO
sample screen where I want to implement frames in ScreenIO
lnimembr sample screen.jpg (200.07 KiB) Viewed 16665 times
Gabriel
Posts: 412
Joined: Sun Aug 10, 2008 7:37 am
Location: Arlington, TX
Contact:

Re: ScreenIO - frames

Post by Gabriel »

Mikhail has used frames the most, so maybe he'll chime in with more info.

Frames work by using Child Windows. In order to make them work in BR, we have to be able to input from both inside and outside the child window at the same time. This is not supported in older versions of BR prior to 4.3, so instead the way that ScreenIO handles frames, is it turns "FORCE_VISIBILITY" on and off as needed, so that it can have FORCE_VISIBILITY on and input from behind the frame and have the controls "soak through" to the frame.

ScreenIO uses a similar technique to support multi-line text boxes which aren't supported in regular BR either.

Its worth it, if you're getting something good out of it, but it can be a little tricky sometimes to debug a program that turns Force_Visibilty on and off all the time. Also, having frames on your screen will make the whole screen run a little slower as Screenio has to keep changing Force_Visibility all the time in order to manage it. That having been said, I get good feedback from frames and the bugs have been worked out so you hopefully won't have to worry about it.


To answer your question: You can do a bunch of really useful stuff with Frames.

You can set a Background Image on a frame and then place controls on the frame .. you might have an image of a check on part of the screen and put controls on top of that image where the amounts would be. This makes them powerful like pictures, but with the added benefit of you being able to put additional controls on top of the picture.

Also, when designing your screen, if you move the frame, all the controls inside the frame come with it, so thats nice.

Also, you can use "INVISIBLE" to turn the entire frame visible/invisible with a single command.

Multi-line textboxes are really nice, even nicer perhaps.. and once you're using frames, you might as well use Multi-line text boxes, and vice versa.
Susan Smith
Posts: 717
Joined: Sun Aug 10, 2008 4:24 am
Location: Southern California

Re: ScreenIO - frames

Post by Susan Smith »

I like what you said about being able to make the entire frame "invisible" since it's a child window. This will mean that when the user is working in something where I don't want that set of buttons active on the frame - until the user completes something, I can just turn it off instead of having to manually manipulate the properties of every button on the screen. VERY nice.

Thanks again Gabe. And Mikhail, if you have anything to add (or screen shots!), please chime in. I'd love to know what you're doing.

-- Susan
Susan Smith
Posts: 717
Joined: Sun Aug 10, 2008 4:24 am
Location: Southern California

Re: ScreenIO - frames

Post by Susan Smith »

Gabriel,

What changed in BR 4.3 that allows you to handle frames differently? The simultaneous input from inside and outside of child windows? I may be able to convince my client to move to 4.3 if I can convince them of the reasons. Or does ScreenIO use FORCE VISIBILITY no matter what version of BR? I might have misunderstood.

-- Susan
John
Posts: 555
Joined: Sun Apr 26, 2009 8:27 am

Re: ScreenIO - frames

Post by John »

I believe that 4.3 is when the support for this sort of syntax begins

Code: Select all

rin f '#101,1,1,C 10,[whatever];#102,2,2,C 12,[whatever]': x$,y$
as opposed to the older style which would only allow inputting to one frame i.e.

Code: Select all

rin f #101 '1,1,C 10,[whatever];2,2,C 12,[whatever]': x$,y$
John Bowman
Gabriel
Posts: 412
Joined: Sun Aug 10, 2008 7:37 am
Location: Arlington, TX
Contact:

Re: ScreenIO - frames

Post by Gabriel »

Screen io uses force visibility, no matter what version you're in.

A lot of those features by the way were added to br after i demonstrated the usefullness by adding them to screenio. So they weren't added to BR until after i wrote them the hard way.

It works pretty well though and it even works in br 4.2 and 4.1.

Gabriel
Post Reply