| 
        
          | 
              
                | T O P I C    R E V I E W |  
                | Patrick Quinn | Posted - Aug 21 2011 : 15:42:26 To show images full-screen in my viewer program, I use a borderless maximised form with an ImageENView aligned to alClient.
 The user can cycle through full screen images of the main form ImageEnMview thumbnails, using the keyboard, with a transition at each image change.
 
 This works very well - the transitions looks great - but on large images there is a noticeable lag between pressing the keyboard and the ImageEnView starting the transition, as it has to load the image from disk.
 
 To get rid of this lag, I have tried using two TIEBitmaps (both with a TImageEnIO attached), and pre-loading the previous and next images into these.
 I then then use:
 
 ImageEnView.PrepareTransition
 ImageEnView.IEBitmap.AssignImage(My TIEBitmap)
 ImageEnView.RunTransition(xxx, xxx).
 
 This gets rid of the time lag, but introduces a new problem - the ImageEnView doesn't autofit the image until the transition has finished, causing the image to jerk as it resizes when the transition finishes.
 
 I guess assigning the new image to the ImageEnView.IEBitmap is wrong?
 Is there a correct way of pre-loading an image then using transitions?
 
 I hope I've explained this ok.
 
 regards
 
 Patrick
 |  
                | 3   L A T E S T    R E P L I E S    (Newest First) |  
                | fab | Posted - Aug 22 2011 : 01:46:12 Actually ImageEnView.Update() is necessary whenever you change the internal IEBitmap (or Bitmap), but not for ImageEnView.Proc.etc calls. For example:
 
 // update necessary
 ImageEnView.IEBitmap.Fill(clBlack);
 ImageEnView.Update();
 
 // update not necessary
 ImageEnView.Proc.Fill(clBlack);
 |  
                | Patrick Quinn | Posted - Aug 22 2011 : 01:33:11 fabrizio
 
 Thank you very much for your very quick reply.
 
 Yes, that works!
 
 (I should have thought of trying Update, but am still learning ImageEn. The more I learn, the more I realise how powerful ImageEn is. There is a lot to learn, though...)
 
 regards
 
 Patrick
 |  
                | fab | Posted - Aug 21 2011 : 22:48:25 Hello,
 call Update() just after AssignImage:
 
 ImageEnView.PrepareTransition();
 ImageEnView.IEBitmap.AssignImage(My TIEBitmap);
 ImageEnView.Update();   <----
 ImageEnView.RunTransition(xxx, xxx);
 |  |  
 |