View Issue Details

IDProjectCategoryView StatusLast Update
0003585JEDI VCL00 JVCL Componentspublic2006-04-18 03:41
ReporterFishermansAssigned ToAHUser 
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.



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.


2006-04-12 03:06

reporter   ~0009074

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


2006-04-12 13:42

developer   ~0009077

Fixed in CVS.


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);
  inherited CreateParams(Params);
  if Transparent then //and not IsThemed then <=== delete "and not IsThemed"
    // (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];
    //if not (csDesigning in ComponentState) then
      Params.ExStyle := Params.ExStyle and not WS_EX_TRANSPARENT;
    ControlStyle := ControlStyle + [csOpaque];


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


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