Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

XP Manifest und eigene Paint-Procedure

  Alt 29. Sep 2006, 17:53
Hi Leute,

ich habe für das XP-style den ThemeManager mit einer Manifest-Datei eingebunden. Das klappt auch super.

Jetzt muß ich aber feststellen, dass meine Komponenten in denen ich im canvas zeichne nichts mehr zu sehen ist.

Bsp:
Delphi-Quellcode:
  TCustomRegler = class(TCustomPanel)
  private
    FReglerName : String; // Reglertyp (P, PI, PD ...)
    FInnerRect : TRect;
  protected
...
    Procedure DrawPanel; virtual;
    procedure DrawHeaderPanel;
    procedure DrawBottomPanel; virtual;
    procedure DrawPanelFrame;
    procedure DrawName;
    procedure DrawFunctionLine; virtual; abstract;
    procedure Paint; override;
    procedure createWnd; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
...


procedure TCustomRegler.Paint;
begin
  inherited;
  DrawPanel;
end;

...

procedure TCustomRegler.DrawPanel;
begin
  UpdateInnerRect;
  DrawPanelFrame;
  IF (self.Height > 60) then begin
    DrawHeaderPanel;
    DrawBottomPanel;
    DrawName;
  end;
  DrawFunctionLine;
end;

...

procedure TCustomRegler.DrawHeaderPanel;
var r : TRect;
    oColor : TColor;
begin
  r := rect(1, 1, self.width - 1, 16);
  oColor := canvas.Brush.Color;
  canvas.Brush.Color := clwhite;
  canvas.FillRect(r);
  canvas.Brush.Color := oColor;
  oColor := canvas.Pen.Color;
  canvas.Pen.Color := clblack;
  canvas.MoveTo(1, 16);
  canvas.LineTo(self.Width - 1, 16);
  canvas.Pen.Color := oColor;
end;
Das ist mal ein einfaches Beispiel. die Frage für mich ist jetzt, warum werden unter XP mit XP-Style meine Malereien nicht mehr gezeichnet?

Gruß und Dank oki
  Mit Zitat antworten Zitat