Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Brush.Style & Color (https://www.delphipraxis.net/51718-brush-style-color.html)

Moony 17. Aug 2005 16:17


Brush.Style & Color
 
Hallo zusammen,

habe das Problem, daß ich über ein TImage wie folgt versuche ein Rechteck auf eine Fläche zu zeichnen:

Delphi-Quellcode:
  Image.Canvas.Brush.Color := clWhite;
Image.Canvas.Brush.Style := bsFDiagonal;
Image.Canvas.FillRect(rect(0,0,ImageMag.Width,ImageMag.Height));
Leider wird der Hintergrund schwarz und die Diagonalen weiß gezeichnet. Gibt es eine Möglichkeit den umgekehrten Fall zu erzielen, also Hintergrund weiß bzw. transparent und die Diagonalen schwarz?

Ich habe es schon mit
Delphi-Quellcode:
Image.Pen.Mode := pmXor;
davor versucht, leider ohne Erfolg. Scheinbr hat die Funktion keine Einwirkung auf das Farbverhalten. :wall:

Ich hoffe mir kann da jemand weiterhelfen. Thanks im Vorraus.

gruß, moony

himitsu 17. Aug 2005 16:37

Re: Brush.Style & Color
 
pmXor hat ein Farbverhalten, nur fällt das bei Schwarz/Weiß nicht so ganz auf.

Delphi-Quellcode:
Image.Canvas.Brush.Color := clWhite;
Image.Canvas.Brush.Style := bsSolid;
Image.Canvas.FillRect(rect(0,0,ImageMag.Width,ImageMag.Height));
Image.Canvas.Brush.Color := clBlack;
Image.Canvas.Brush.Style := bsFDiagonal;
Image.Canvas.FillRect(rect(0,0,ImageMag.Width,ImageMag.Height));
Der Hintergrund wird nicht Schwarz gezeichnet, der ist standardmäßig schwarz.
Es werden nur die Diagonalen gezeichnet, für welche du ja clWhite gewählt hast.

Also vorher alles Weiß machen und dann noch die schwarzen Linien drauf ;)

Moony 18. Aug 2005 13:07

Re: Brush.Style & Color
 
Hallo, habe das ganze ausprobiert, aber die Fläche wird dennoch komplett schwarz gezeichnet. :gruebel:

Vielleicht ein einen anderen Vorschlag?

gruß, moony

Moony 22. Aug 2005 08:10

Re: Brush.Style & Color
 
Weiß denn keiner eine Lösung für dieses Problem???

:cry:

Flocke 22. Aug 2005 08:17

Re: Brush.Style & Color
 
Auszug aus der MSDN:
Zitat:

Although lbColor controls the foreground color of a hatch brush, the SetBkMode and SetBkColor functions control the background color.
Du solltest SetBkMode(Canvas.Handle, TRANSPARENT) und/oder SetBkColor(Canvas.Handle, clWhite) benutzen, um die Hintergrundfarbe deines Pinsels zu setzen.

Moony 22. Aug 2005 08:41

Re: Brush.Style & Color
 
Super!Danke, das hat endlich funktioniert!!!

:dancer2:

Aber was den Wert TRANSPARENT betrifft, nimmt er ihn im Gegensatz zu OPAQUE nicht an! :?:

gruß, moony

turboPASCAL 22. Aug 2005 10:46

Re: Brush.Style & Color
 
Hast Du es mal so versucht:
Code:
SetBkMode(ImageX.Canvas.Handle, [color=#ff0000]Ord([/color]TRANSPARENT[color=#ff0000])[/color]);

Moony 22. Aug 2005 14:29

Re: Brush.Style & Color
 
Ja danke, und es geht. Wobei ich das nicht ganz nachvollziehen kann warum der eine Wert als Integer angenommen wird und der andere nicht, obwohl beide gleichwertig von der Funktion unterstützt werden.

Wobei ich die Funktion SetBkMode() auch weglassen könnte, da diese den Hintergrund sowieso nicht transparent macht. Aber mal schauen. Nochmal vielen Dank für die Hilfe. :thumb:

gruß, moony


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