Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wie schwarze Buchstaben auf bunten Hintergrund schreiben? (https://www.delphipraxis.net/59602-wie-schwarze-buchstaben-auf-bunten-hintergrund-schreiben.html)

Der_Ventilator 25. Dez 2005 17:46


Wie schwarze Buchstaben auf bunten Hintergrund schreiben?
 
Hi,
ich habe ein canvas, auf das ich einen Gradienten gezeichnet habe (einen Verlauf von gelb nach grün):

Delphi-Quellcode:
procedure DrawGradient(const Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
  Y, R, G, B: Integer;
  RColor1, GColor1, BColor1: Integer;
  RColor2, GColor2, BColor2: Integer;
begin
  Color1:=ColorToRGB(Color1);
  Color2:=ColorToRGB(Color2);

  RColor1:=GetRValue(Color1);
  GColor1:=GetGValue(Color1);
  BColor1:=GetBValue(Color1);

  RColor2:=GetRValue(Color2);
  GColor2:=GetGValue(Color2);
  BColor2:=GetBValue(Color2);

  Canvas.Pen.Width:=1;
  Canvas.Pen.Style:=psInsideFrame;

  for Y:=Rect.Top to Rect.Bottom-1 do
  begin
    R:=Round(RColor1 + ((RColor2 - RColor1) * Y / (Rect.Bottom - Rect.Top)));
    G:=Round(GColor1 + ((GColor2 - GColor1) * Y / (Rect.Bottom - Rect.Top)));
    B:=Round(BColor1 + ((BColor2 - BColor1) * Y / (Rect.Bottom - Rect.Top)));

    Canvas.Brush.Color:=RGB(R, G, B);
    Canvas.FillRect(Classes.Rect(Rect.Left, Y, Rect.Right, Y+1));
  end;
end;

Nun will ich drauf einen Text schreiben, aber ohne das die schwarzen Buchstaben mit einer hässlichen einheitlichen Farbe hinterlegt sind (Brush.Color eben), sondern, dass diese Farbe durchsichtig ist.
Ich denke, das geht mit igendwelchen Pen.Mode Einstellungen, aber ich weiß nicht, welchen.

Oder muss ich erst Schreiben und dann den Verlauf drüberzeichenen; aber so, dass er schwarz durchscheinen lässt?
Aber wie geht das?

DBR 25. Dez 2005 18:00

Re: Wie schwarze Buchstaben auf bunten Hintergrund schreiben
 
Delphi-Quellcode:
canvas.brush.style:=bsClear;
gruß DBR


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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