| 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) |
| Reader's Clinic - Scribe Replace Processes in Window |
| Deep Zoom Revisited |
| Deep Zoom by Les Palenik - Cosmotron Systems Ltd |
| Argument passing - Subroutines and Functions - Mike Pope |
| Caching in on the Frames Array - Mike Pope |
| QTIPS - Fast Dynamic Array Building |
| 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 |
| Reader's Clinic - RList Column Names |
| Reader's Clinic - Blank Column Headings in RLIST |
| QTIPS - Column Heading Limit |
| SecureUser |
| VERBatim - V25 |
| @ATTACK - @Files.System |
| Advanced Revelation Initialisation Sequence (Overview) by Mike Pope |
| REVMEDIA Revisted |
| Reader's Clinic - Functions and Subroutines |
| Argument passing - Subroutines and Functions - Mike Pope |
| Reader's Clinic - Capture Command and Captured Keystrokes |
| Catalyst |
| Popups |
| Catalyst Tips |
| QTIPS - NoRead |
| Reader's Clinic - EVAL |
| QTIPS - New Catalyst Option |
RevMedia FKB
| Document | V4I10A12 |
| Title | Deep Zoom Revisited |
| Keywords | DEEP ZOOM |
| Text | Thanks 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 Row 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 = Row 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) |
Page last modified: 08/02/03