Project JEDI - Issue Tracker - JEDI VCL
Viewing Issue Advanced Details
5689 00 JVCL Components minor always 2011-10-20 16:23 2012-09-10 14:15
stevegr  
obones  
normal  
resolved Daily / GIT  
fixed  
none    
none 3.46  
0005689: TJvFormWallpaper do not update image
After load a new image with JvFormWallpaper1.Image.LoadFromFile, image do not change. JvFormWallpaper1.Invalidate/Update/Refresh/Repaint do not work also.

The only ways found are:
1) JvFormWallpaper1.Hide;JvFormWallpaper1.Show;
2) Resize the form.



Issue History
2011-10-20 16:23 stevegr New Issue
2011-10-20 21:59 Arioch Note Added: 0019050
2011-10-22 16:30 stevegr Note Added: 0019051
2011-10-24 11:16 Arioch Note Added: 0019055
2011-10-24 17:39 stevegr Note Added: 0019057
2011-10-29 21:27 Arioch Note Added: 0019069
2011-10-30 12:59 stevegr Note Added: 0019071
2012-02-22 14:41 obones Note Added: 0019438
2012-02-22 14:41 obones Status new => feedback
2012-02-24 15:19 obones Note Added: 0019536
2012-02-24 15:19 obones Status feedback => resolved
2012-02-24 15:19 obones Fixed in Version => Daily / SVN
2012-02-24 15:19 obones Resolution open => fixed
2012-02-24 15:19 obones Assigned To => obones
2012-09-10 14:15 obones Fixed in Version Daily / SVN => 3.46

Notes
(0019050)
Arioch   
2011-10-20 21:59   
tried to play with .DoubleBuffered of TForm and/or of wallpaper ?
(0019051)
stevegr   
2011-10-22 16:30   
Forgot to mention that the problem occures when FormStyle is fsMDIForm.
Form.DoubleBuffered reduce flickering of wallpaper.
(TJvFormWallpaper has not DoubleBuffered property)
(0019055)
Arioch   
2011-10-24 11:16   
flickering ?

Flickering is dynamic process, show/hide/show/hide etc
Report told "image do not change" - so no flickering, static picture.
(0019057)
stevegr   
2011-10-24 17:39   
Sorry if my english is not so good.
Form.DoubleBuffered helps reducing flickering of wallpaper only when I use JvFormWallpaper1.Hide;JvFormWallpaper1.Show to update the wallpaper with the new image. DoubleBuffered property is not an issue here. The problem is that when the main's form FormStyle is fsMDIForm, JvFormWallpaper1 does not update the new image.
(0019069)
Arioch   
2011-10-29 21:27   
There is one rather old component with emphasized goal at MDI windows

http://www.torry.net/authorsmore.php?id=878 [^]

Dunno if it still has any valueable clues.

But it's mention of RxLib makes it far relative to JVCL :-)
(0019071)
stevegr   
2011-10-30 12:59   
I worked on a solution for JvFormWallpaper unit (JVCL3-Source-2011-10-30):

...
implementation

uses
  Forms;
...

procedure TJvFormWallpaper.FormPaint(Sender: TObject);
begin
  if (Parent is TForm) and (TForm(Parent).FormStyle = fsMDIForm) then begin
    RequestAlign; // Invalidate DOES NOT work here.
  end else
    Invalidate;
end;
(0019438)
obones   
2012-02-22 14:41   
So what do we do here?
(0019536)
obones   
2012-02-24 15:19   
Applied suggested change in SVN