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