Project JEDI - Issue Tracker
Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003585 [JEDI VCL] 00 JVCL Components minor always 2006-03-15 15:55 2006-04-18 03:41
Reporter Fishermans View Status public  
Assigned To AHUser
Priority normal Resolution fixed  
Status resolved   Product Version 3.10
Summary 0003585: TJvPanel loses transparenty at runtime if XPManifest is used
Description Setting 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)
Additional Information
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0009025)
obones (administrator)
2006-04-07 07:22

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.
(0009074)
Fishermans (reporter)
2006-04-12 03:06

Yes, you are right. This only happens if the Windows Theme is different than the classic one.
(0009077)
AHUser (developer)
2006-04-12 13:42

Fixed in CVS.
(0009132)
Fishermans (reporter)
2006-04-18 02:56

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;
...
(0009133)
obones (administrator)
2006-04-18 03:41

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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker