View Issue Details

IDProjectCategoryView StatusLast Update
0005689JEDI VCL00 JVCL Componentspublic2012-09-10 14:15
ReporterstevegrAssigned Toobones 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionDaily / GIT 
Target VersionFixed in Version3.46 
Summary0005689: TJvFormWallpaper do not update image
DescriptionAfter 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.



TagsNo tags attached.

Activities

Arioch

2011-10-20 21:59

developer   ~0019050

tried to play with .DoubleBuffered of TForm and/or of wallpaper ?

stevegr

2011-10-22 16:30

reporter   ~0019051

Forgot to mention that the problem occures when FormStyle is fsMDIForm.
Form.DoubleBuffered reduce flickering of wallpaper.
(TJvFormWallpaper has not DoubleBuffered property)

Arioch

2011-10-24 11:16

developer   ~0019055

flickering ?

Flickering is dynamic process, show/hide/show/hide etc
Report told "image do not change" - so no flickering, static picture.

stevegr

2011-10-24 17:39

reporter   ~0019057

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.

Arioch

2011-10-29 21:27

developer   ~0019069

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 :-)

stevegr

2011-10-30 12:59

reporter   ~0019071

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;

obones

2012-02-22 14:41

administrator   ~0019438

So what do we do here?

obones

2012-02-24 15:19

administrator   ~0019536

Applied suggested change in SVN

Issue History

Date Modified Username Field Change
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