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 mit XP Theme und Color (https://www.delphipraxis.net/138489-tpanel-mit-xp-theme-und-color.html)

Klaus01 11. Aug 2009 11:49


TPanel mit XP Theme und Color
 
Hallo,

ich versuche mal die Überschrift ein wenig besser verständlich zu machen.

Ich habe folgende Klasse:
Delphi-Quellcode:
 
TBasicObject = class(TPanel)
  private
    id : Integer;
    alarm : TAlarm;
    name : AnsiString;
    myMousePosition : TPoint;
    symbol : TImage;
    textLabel : TStaticText;
    procedure myMouseDown(Sender : TObject; Button: TMouseButton; Shift: TShiftState; x,y: Integer);

  public
    constructor create(owner: TComponent; name: AnsiString; position:TPoint); reintroduce;
    procedure setName(name: AnsiString); reintroduce;
    procedure move(position: TPoint);
    procedure setAlarm(alarm: TAlarm);

end;
Wenn ich die Farbe des Panels ändere (setAlarm) und das XP Theming ist
ausgeschaltet (Klassik Windows) ändert sich auch die Farbe des Panels.

Ist nun aber das Theming eingeschaltet bleibt das Panel grau, die Farbe
ändert sich nicht.

Das XPMan ist auf der Form (Turbo Delphi Expl).
Nun möchte ich schon im allgemeinen das Theming zulassen.

Kennt jemand eine Möglichkeit das Panel vom Theming auszuschließen?
Oder eine Alternative zum Panel?


Grüße
Klaus

DeddyH 11. Aug 2009 12:09

Re: TPanel mit XP Theme und Color
 
http://www.delphipraxis.net/internal...t.php?t=126128

Hth

espen 11. Aug 2009 12:15

Re: TPanel mit XP Theme und Color
 
Hallo,

damit mit Theme auch die Farbe des Panels geändert wird, muss Du mit dem Parentbackground "rumspielen":

Delphi-Quellcode:
Panel1.ParentBackground := False;
Panel1.ParentBackground := True;
Panel1.ParentBackground := False;

Klaus01 11. Aug 2009 12:24

Re: TPanel mit XP Theme und Color
 
Hallo espen,

danke für den Tipp, damit funktioniert es.

Ich setze jetzt zuerst den Parentbackground auf true
dann setze ich die Farbe.

Delphi-Quellcode:
ParentBackGround := true;
case alarm.id of
  3 : color := clRed;
  2 : color := clPurple;
  1 : color := clYellow;
  0 : color := clLime;
end;
ParentBackGround:=false;
@DeddyH, mit Deinem Tipp bin ich leider nicht zurecht gekommen.
Stecke wohl noch nicht tief genug in der Materie.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 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