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