AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XP Manifest und eigene Paint-Procedure

Ein Thema von oki · begonnen am 29. Sep 2006 · letzter Beitrag vom 4. Okt 2006
Antwort Antwort
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, 16: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
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: XP Manifest und eigene Paint-Procedure

  Alt 29. Sep 2006, 17:02
Leite nicht von einem Panel ab sondern entweder von TGraphicControl oder ein TWinControl Nachfahre. Das TCustomPanel ist die Basis für ein Panel und da lässt die VCL dann komplett vom ThemeManager zeichnen - da kommt deine Routine gar nicht mehr zum Zuge...
  Mit Zitat antworten Zitat
oki

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

Re: XP Manifest und eigene Paint-Procedure

  Alt 29. Sep 2006, 17:08
Hi Muetze,

ich check das mal, ob ich so einfach zu einer anderen Basiskompo springen kann. Dann würde ich aber lieber TcustomControl nehmen. Die hat dann schon mal einen Canvas

am liebsten würde ich aber TCustomPanel bleiben, wenn es einen anderen Weg gibt das Problem zu umgehen.

gruß oki
  Mit Zitat antworten Zitat
oki

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

Re: XP Manifest und eigene Paint-Procedure

  Alt 4. Okt 2006, 07:14
Hi,

ich habe jetzt die Kompos nicht von TCustomPanel, sondern von TcustomControl abgeleitet. Der Aufwand war definitiv gering und unter XP wird jetzt auch wieder alles sauber gezeichnet.

gruß oki
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 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