Thanks Bruce.

Unfortuantely it doesn't seem to work for me... I end up with some
very strange behaviour. Windows zooming in and out at will,
independently...

Maybe it's screen setup dependent...??



--- In [email protected], "bruce1r" <bru...@...> wrote:
>
> Had done it before, so until Tomasz gets to it -
> 
>
//--------------------------------------------------------------------------------------------------
> //
> //  This function checks the current display range, and if it has
> changed, it
> //  synchronizes all other windows (documents) to that range.  
> //
> //  To use, #include this file in an indicator in each window
> (document) to be 
> //  synchronized.  Normally it sync's other windows (documents) when
> the caller's
> //  displayed date range changes, but it has an optional parameter to
> force a re-sync.
> //
> //  NOTE - the only downside is that the blank bars on the right
side are
> //         removed by the ZoomToRange method
> //
> //  Bruce R - 12/10/08
> //
>
//--------------------------------------------------------------------------------------------------
> 
> function ZoomSync( force )
> {
>       //  All variables are made local to guarantee naming collisions or
> side effects
>       local                   bv, dr, Curstdt, Curenddt, prevstdt, prevenddt, 
> Curststr,
> Curendstr;
>       local                   OAB, OAD, dcount, i, OADoc, OAW, OADocWin, res;
> 
>       //  Get a count of the number of documents
>       OAB                             = CreateObject( "Broker.Application" );
>       OAD                             = OAB.Documents;
>       dcount                  = OAD.Count;
> 
>       //  Process multiple windows (documents)
>       res                             = False;
>       if ( dcount > 1 )
>       {
>               //  Get current and last start and end DateTimes's
>               bv                              = Status( "barvisible" );
>               dt                              = DateTime( );
>               Curstdt         = LastValue( Lowest( IIf( bv, dt, LastValue( dt 
> ) ) ) );
>               Curenddt                = LastValue( Highest( IIf( bv, dt, 0 ) 
> ) );
>               prevstdt                = Nz( StaticVarGet( "_prevstdt" ) );
>               prevenddt               = Nz( StaticVarGet( "_prevenddt" ) );
> 
>               //  Check for a new date/time range
>               if ( ( Curstdt != prevstdt OR Curenddt != prevenddt ) OR force )
>               {
>                       //  Set the new last values
>                       StaticVarSet( "_prevstdt", Curstdt );
>                       StaticVarSet( "_prevenddt", Curenddt );
>       
>                       Curststr                = DateTimeToStr( Curstdt );
>                       Curendstr               = DateTimeToStr( Curenddt );
>       
>                       //  Loop through the document collection
>                       for ( i = 0; i < dcount; i++ )
>                       {
>                               //  If it is not the active document -
>                               OADoc                   = OAD.Item( i );
>       
>                               //  NOTE - it doesn't hurt to sync the current 
> window and it
makes all
>                               //         windows have no blank bars on the 
> right so they look
> the same
>                               //if ( OADoc != OAB.ActiveDocument )
>                               {
>                                       //  Get the document window and zoom to 
> range
>                                       //_TRACE( "  Zoom to range document - " 
> + i + " , " +   Curststr +
> " - " + Curendstr );
>                                       OADW                    = OADoc.Windows;
>                                       //  Document window count assumed to be 
> 1
>                                       OADocWin                = OADW.Item( 0 
> );
>                                       OADocWin.ZoomToRange( Curststr, 
> Curendstr );
>                               }
>                       }
>                       res                             = True;
>               }
>       }
>       return          res;
> }
> 
> //  Call for synchronization
> ZoomSync( False );
> 
> 
> 
> --- In [email protected], "sidhartha70" <sidhartha70@> wrote:
> >
> > TJ,
> > 
> > Would 'zoom link' functionality be difficult to implement...?
> >
>


Reply via email to