Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPanel HG-Farbe bei bei XP + Vista (https://www.delphipraxis.net/132742-tpanel-hg-farbe-bei-bei-xp-vista.html)

Willie1 18. Apr 2009 17:10


TPanel HG-Farbe bei bei XP + Vista
 
Hallo Leute,

ich weiß nicht, ob allgemein bekannt ist, dass bei eingebundenen XP-Manifest die Hintergrund-Farbe bei TPanel ignoriert wird. Ist im Quelltext von den Borländern auch dokumentiert. Da ich in einem Programm von mir viele Panels mit Hg-Farbe einsetze, habe ich nach einer Lösung gesucht. Sie ist sehr einfach, eine neue Komponente wie folgt:
Delphi-Quellcode:
unit WZPanel;

{*******************************************************************************
*  getestet mit Delphi 9/10
*  Neue Panel-Komponente - zeigt Hintergrundfarbe (.Color) auch bei XPManifest an
*  15.03.2009
*
*  Nur zusammen mit XPManifest (Themes) benutzen !!!
*  Nebeneffekte sind mir noch nicht bekannt.
*
********************************************************************************}

interface

uses
  SysUtils, Classes, Controls, ExtCtrls;

type
  TWZPanel = class(TPanel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    constructor Create(AOwner: TComponent); override;
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TWZPanel]);
end;

constructor TWZPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle - [csParentBackground] + [csOpaque];
end;

end.
Es gibt sicher einen Grund für das Vorgehen der Borland-Programmierer. In meinem Prg gibt es aber keine Probleme.
Vielleicht kann jemand damit was anfangen. Rückmeldung wäre schön.

MfG
Willie1

mirage228 18. Apr 2009 17:12

Re: TPanel HG-Farbe bei bei XP + Vista
 
Es gibt doch schon die Eigenschaft Delphi-Referenz durchsuchenParentBackground (oder war es Delphi-Referenz durchsuchenParentColor? :gruebel: ), damit sollte es auch ohne neue Komponente gehen mein ich ...

Bernhard Geyer 18. Apr 2009 17:58

Re: TPanel HG-Farbe bei bei XP + Vista
 
Du kannst auch einzelne Controls vom XP-Theming ausnehmen. Dafür gibt es auch eine WinAPI-Funktion die du aufrufen kannst. Kenn im moment den Namen der Funktion nicht da meine ElPack-Control ein Property UseXPTheme besitzen :-)

Übrigens: Es gibt noch weiter Eigenschaften bei diversen Controls die bei aktiven XP-Theming ignoriert werden.

Willie1 18. Apr 2009 18:21

Re: TPanel HG-Farbe bei bei XP + Vista
 
Ich bin eigentlich sicher ParentBackground ausprobiert zu haben!
Die Komponente funktioniert und ich will mein Prg nicht wieder umschreiben.

Danke für die schnelle Reaktion.

Schö Wo-ende
Willie

DeddyH 18. Apr 2009 18:24

Re: TPanel HG-Farbe bei bei XP + Vista
 
Aber an Deiner Stelle würde ich noch eine Überprüfung einbauen, ob Theming vorhanden und eingeschaltet ist. Kommt zumindest besser als ein Kommentar im Quellcode ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz