Einzelnen Beitrag anzeigen

JYPDWhite

Registriert seit: 29. Sep 2010
28 Beiträge
 
#1

Farbverlauf von TPageControl bei XP Style

  Alt 22. Apr 2013, 11:39
Hallo ihr,

ich habe mal wieder ein Problem.
Ich bin dabei ein Programm von Delphi 2007 auf XE2 zu portieren. Dabei soll nun auch die Themeuntersützung aktiviert werden. Was ja dazu führt dass ein TPageControl nun einen Farbverlauf hat. In diesem Programm werden jedoch Teile von Bildern ausgeblendet indem sie mit der Farbe clBtnFace übermalt werden.
Das sieht natürlich durch den Farbverlauf nicht mehr schön aus. Nun dachte ich mir. Ok da schreibst du dir halt eine Funktion die aus dem Canvas des TPageControl die entsprechende Stelle kopiert und in das Zielbild einfügt. Leider bekomme ich da nur ein weißes Bild und nicht den Farbverlauf zurück. (Siehe Bilder)


Hat jemand eine Idee wie ich ich an den Farbverlauf ran komme?

Hier der Quellcode:
Delphi-Quellcode:
procedure setzeHintergrund(zielbild : TImage; parent : TPageControl; aktTabsheet : TTabSheet);
var
  zielrect : TRect;
  srcrect : TRect;
begin
  zielrect:=Rect(0, 0, zielbild.Width, zielbild.Height);
  srcrect:=Rect(aktTabsheet.Left+zielbild.Left, aktTabsheet.Top+zielbild.Top, zielbild.Width, zielbild.Height);
  zielbild.Canvas.CopyRect(zielrect, parent.Canvas, srcrect);
end;

procedure TForm13.Btn1Click(Sender: TObject);
begin
setzeHintergrund(Im_1, pgc1, TabSheet1);
end;

MfG
Uwe
Miniaturansicht angehängter Grafiken
vorbuttonclick.png   nachbuttonclick.png  
  Mit Zitat antworten Zitat