Prompt Help
Reader's Clinic - Scribe Replace Processes in Window
Window or Not ?
Vroom - Window Processing
QTIPS - Window Symbol Tables
VROOM - Window Processing II
@ATTACK - @HW
Uncommon Knowledge - WC_Reset%
Reader's Clinic - Related Windows
Window or Not?
Reader's Clinic - Scribe Replace Processes in Window
Soft Windows
QTIPS - Window Bug and Debugging Window Bug
Overlapping Windows And Window Menus
QTIPS - New Catalyst Option
QTIPS - Collectors on the fly
QTIPS - Blank Menus in Windows
QTIPS - Moving Objects the EASY way.
QTIPS - Unlimited Softkeys
Playing with Scan Codes
QTIPS - Compiling Protection Code
QTIPS - Invalid Code and Command
QTIPS - Code/Command Help
Compiling 64K on a Shoestring by Blaise Wrenn (LexStat Systems Ltd)
QTIPS - FOR/NEXT variables
Redefining Keys
RTP Series - RTP53B
Prompt Help
VERBatim - V124
Popups
@ATTACK - @Environ.Set
@ATTACK - @Edit.Keys
@ATTACK - @Int.Const
@ATTACK - @HW
@ATTACK - @Modal
@ATTACK - @Move.Keys
@ATTACK - @Priority.Int
@ATTACK - @Macro.Mode
Utility Diskette # 3 - Part I
Utility Diskette # 3 - Part II
Utility Diskette # 4
Utility Diskette # 3 - Part I
Utility Diskette # 3 - Part II
Utility Diskette # 4
Deep Zoom Revisited
Deep Zoom by Les Palenik - Cosmotron Systems Ltd
Reader's Clinic - Scribe Replace Processes in Window
Deep Zoom Revisited
Deep Zoom by Les Palenik - Cosmotron Systems Ltd
Capture Playback and Convert.Keystrokes
SecureUser
VERBatim - V86
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
Popups
Catalyst Tips
Collector Windows
QTIPS - Reusing Symbolics in Windows
Uncommon Knowledge - WC_W%
QTIPS - Skipping Prompts
Argument passing - Subroutines and Functions - Mike Pope
Caching in on the Frames Array - Mike Pope
QTIPS - Fast Dynamic Array Building
Uncommon Knowledge - WC_W%
Uncommon Knowledge - WC_Prompts%
QTIPS - @Date.Format
@ATTACK - @Date.Format
QTIPS - Short Cut Implicit Formatting
Utility Diskette # 4
Form.List.S
QTIPS - Aesthetically Improving RLIST Reports
QTIPS - Form Processor
QTIPS - Suppressing Initial Form Feed
QTIPS - Using RTP29 In Place of V6
VERBatim - V16
Popups
Utility Diskette # 3 - Part I
Referential Integrity
Reader's Clinic - Related Windows
QTIPS - RLIST Average / Total Results
VERBatim - V126
Esc.To.Exit
Uncommon Knowledge - WC_WST_CHAR%
Reader's Clinic - RList Column Names
Reader's Clinic - Blank Column Headings in RLIST
QTIPS - Column Heading Limit
2.1 Highlights
REVMEDIA Revisited
Bugs and PCs - Macro Keys
QTIPS - SET.MACROS - Choosing Active Macro Set
QTIPS - TCL Disabled
@ATTACK - @Tutor
RTP Series - RTP1
VERBatim - V20
File Variables
SecureUser
VERBatim - V25
@ATTACK - @Files.System
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
REVMEDIA Revisted
RTP Series - RTP27
QTIPS - Printing Large Variables from the Debugger
VERBatim - V87
Reader's Clinic - Functions and Subroutines
Argument passing - Subroutines and Functions - Mike Pope
QTIPS - Break-On Date Fields
IConvs / OConvs
Prompt Help
VERBatim - V6
QTIPS - BASIC Options
The End of the Line - Mike Pope and Hal Wyman
Reader's Clinic - Capture Command and Captured Keystrokes
Catalyst
Popups
Catalyst Tips
QTIPS - NoRead
Reader's Clinic - EVAL
QTIPS - New Catalyst Option
Flashing Background
Message
VERBatim - V41
Screen Grabber
Window or Not ?
Popups
Play it Again, Cam
QTIPS - Video.Rw
Window or Not?
Uncommon Knowledge - WC_Vprev%
Uncommon Knowledge - WC_VWindow%
QTIPS - Query Windows - Changing Colours
Video Control
Version 3 Technical Highlights - Input.Char

RevMedia FKB

DocumentV4I10A12
TitleDeep Zoom Revisited
KeywordsDEEP
ZOOM
TextThanks to Les Palenik of Cosmotron SYSTEMS Ltd for pointing out a useful
and aesthetic technique to eliminate redundant softkeys (see last issue)
Les stated that the only limitation of his routine was that it required the
user to be positioned in the actual prompt before pressing SF3 rather than
having it available throughout the window as a normal softkey To overcome
this limitation I've extended the code to that shown below (as always
source will be available on the next utility diskette if you can wait that
long ) In addition I've corrected a slight oversight in the original code
which would have led to errors if Deep Zoom was used on multivalued data
(note the convert STATEMENT near the end!)

If the user is NOT in a Deep Zoom prompt then an anchored popup is
displayed showing all of the ASSOCIATED windows available It establishes
this information by scanning the WC_W% array looking for information in
prompt register 1 (The original code used WC_Prompts% but the dimensioned
array used here gives faster results in the LOOP ) The user can then access
the window(s) of their choice

The format of the information stored in the prompt register has ALSO been
enhanced; it should now be in the form WindowName (Description)
(NullSuppress) (although the code is backward compatible for any existing
windows!) WindowName functions exactly as before Description should
contain brief text about the related window for inclusion in the popup
(CUST_REL_INV might not mean anything to the average user!) Finally the
optional parameter NullSuppress if set to true tells the routine NOT to
present the related window if there is no data in the relevant column of the
current row

It is ALSO now possible to include the routine on a macro keystroke (ideally
Alt 3) as well as/instead of the previously recommended SF3 softkey This is
made possible by a simple check on @Tutor (see RevMedia passim) but note
that if the user has access to system windows which use register 1 for other
nefarious purposes then a more rigorous check might be required later in
the program

Subroutine DeepZoom
/*
Author Cameron Christie (Sprezzatura Ltd)
Date April 1993
Purpose To provide alternate deep zoom functionality

Acknowledgements to Les Palenik (Cosmotron SYSTEMS Ltd)
*/

* Add check to permit macro operation

If @Tutor[ 6 6] # "WINDOW" Then Return
$Insert SysInclude Window_Common%

Declare Subroutine Msg Catalyst Video Rw
Declare FUNCTION Pop Up

WindowDetails = WC_W%(WC_Wi%)<47>
WindowName = Field(WindowDetails " " 1)

If WindowName Then
* We are in a prompt WITH a related window
NullSuppress = Field(WindowDetails " " 3)
RelatedKeys = WC_Is%
Gosub CallWindow
End Else
* SCAN the W% array for ALL applicable related windows
Row = @Record
Row4> WC_Mv%> = WC_Is%
Disp = ""
RelatedData = ""
For I = 1 To WC_W_Cnt%
WindowDetails = WC_W%(I)<47>
If WindowDetails Then
WindowName = Field(WindowDetails " " 1)
Description = Field(WindowDetails " " 2)
NullSuppress = Field(WindowDetails " " 3)
RelatedKeys = Row4>>
If RelatedKeys OR Not(NullSuppress) Then
If Description Else Description = WindowName
Disp := Description: @Vm :WindowName : @Fm
RelatedData := RelatedKeys : @Fm
End
End
Next I
If Disp Then
Disp[ 1 1] = ""
NullSuppress = 0 ; * Null checks have already been applied!
Gosub SelectWindow
End Else
Msg("|No related windows to zoom to!|")
End
End
Return

SelectWindow:
F = "1:30:L::"
T = "|Please SELECT related window|"
C = ""
T2 = "P" : @SVM : 1
Video Rw(0 0 @CRTWIDE 1 @CRTMAXHIGH 1 "R" Image)
Loop
Choice= Pop Up(2 2 "" Disp F "R" 0 T "" "" C T2)
While Choice
WindowName = Disp
RelatedKeys = RelatedData
Gosub CallWindow
Repeat
Video Rw(0 0 @CrtWide 1 @CrtMaxHigh 1 "W" Image)
Return

CallWindow:
If RelatedKeys OR Not(NullSuppress) Then
Convert @Vm To " " In RelatedKeys
Catalyst("W" WindowName:" ":RelatedKeys)
End Else
Msg("|No data in this column to zoom!|")
End
Return


(Volume 4 Issue 10 Pages 13 15)
[revmedia/copyrigh.htm]

Page last modified: 08/02/03