View Issue Details

IDProjectCategoryView StatusLast Update
0003585JEDI VCL00 JVCL Componentspublic2006-04-18 03:41
ReporterFishermansAssigned ToAHUser 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.10 
Target VersionFixed in Version3.30 
Summary0003585: TJvPanel loses transparenty at runtime if XPManifest is used
DescriptionSetting a TJvPanel to transparent:=true does not take effect at runtime if the application is compiled with XPManifest, even if ParentBackground is set to false on OnCreate of the form.

To repoduce the issue create an empty form with a TPanel (BG Color Red) and a TJvPanel inside the TPanel. Set the TJvPanel to transparent. Run it. All works as expected. Now compile the project with XPManifest. The TJvPanel is colored with the default color.

(D7 - XP SP2)
TagsNo tags attached.

Activities

obones

2006-04-07 07:22

administrator   ~0009025

I've done just what you said, and I don't see this happening. However, I'm not using any themes under XP, just the basic "Win2k" look.
So please, try again with the latest JVCL version and if this still happens, let us know.

Fishermans

2006-04-12 03:06

reporter   ~0009074

Yes, you are right. This only happens if the Windows Theme is different than the classic one.

AHUser

2006-04-12 13:42

developer   ~0009077

Fixed in CVS.

Fishermans

2006-04-18 02:56

reporter   ~0009132

Sorry. On the latest build 04/17 it wasn't fixed. (Panel Version 1.64)

Please change the follwoing insite the JvPanel.pas:

procedure TJvCustomArrangePanel.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if Transparent then //and not IsThemed then <=== delete "and not IsThemed"
  begin
    // (rom) gives a better look in IDE if always set (not fully correct though)
    //if not (csDesigning in ComponentState) then
      Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
    ControlStyle := ControlStyle - [csOpaque];
  end
  else
  begin
    //if not (csDesigning in ComponentState) then
      Params.ExStyle := Params.ExStyle and not WS_EX_TRANSPARENT;
    ControlStyle := ControlStyle + [csOpaque];
  end;
end;

....

procedure TJvCustomArrangePanel.Paint;
...
    if not Transparent and IsThemed then <== and instead of or
      DrawThemedBackground(Self, Canvas, ClientRect)
    else
      Canvas.Brush.Style := bsClear;
...

obones

2006-04-18 03:41

administrator   ~0009133

Yes, it IS fixed. Version 1.64 is not the one which contains the fix, it is in 1.65 and later.
The CVS version available anonymously and in the daily zip is outdated because of an issue at sourceforge: http://sourceforge.net/docs/A04/
Subversion is being put in place as I write, please watch for messages in our newsgroups about its availability.

Issue History

Date Modified Username Field Change
2006-03-15 15:55 Fishermans New Issue
2006-04-07 07:22 obones Note Added: 0009025
2006-04-07 07:22 obones Status new => feedback
2006-04-12 03:06 Fishermans Note Added: 0009074
2006-04-12 13:42 AHUser Status feedback => resolved
2006-04-12 13:42 AHUser Resolution open => fixed
2006-04-12 13:42 AHUser Assigned To => AHUser
2006-04-12 13:42 AHUser Note Added: 0009077
2006-04-18 02:56 Fishermans Status resolved => feedback
2006-04-18 02:56 Fishermans Resolution fixed => reopened
2006-04-18 02:56 Fishermans Note Added: 0009132
2006-04-18 03:41 obones Status feedback => resolved
2006-04-18 03:41 obones Resolution reopened => fixed
2006-04-18 03:41 obones Note Added: 0009133