![]() |
Eigenen Brush Style
Hi!
Delphi hat ja nur eine sehr begrenzte Anzahl an Brush Styles. Ich will statt zum Beispiel diesen gekreuzten Linien einen gepunkteten Hintergrund. Ich habe mir ein Bitmap erstellt, das ich jetzt gerne nebeneinander bildschirmfüllend ausgeben lassen würde. Jetzt hab ich aber festgestellt, dass ich das Bitmap entweder nur mit Draw einmal zeichnen lassen kann oder mit StretchDraw extrem vergrößert zeichnen kann. Hab ich da was übersehen oder kann man das so nicht machen oder was muss man da beachten? Oder gibt es die Möglichkeit, einen eigenen BrushStyle anzugeben, der dann verwendet wird? Wenn ja wie ginge so was? Ich hab leider keine Ahnung :roll:... Liebe Grüße und schonmal danke, Laura |
Re: Eigenen Brush Style
Du kannst deinem TBrush ein Bitmap als BrushStyle übergeben ;)
Delphi-Quellcode:
var
Bitmap: TBitmap; begin Bitmap := TBitmap.Create; try Bitmap.LoadFromFile('MyBitmap.bmp'); Form1.Canvas.Brush.Bitmap := Bitmap; Form1.Canvas.FillRect(Rect(0,0,100,100)); finally Form1.Canvas.Brush.Bitmap := nil; Bitmap.Free; end; end; |
Re: Eigenen Brush Style
Oh, das war einfach ;). Wie gut, dass ich schon eine Stunde irgendeinen Mist versucht habe. Danke, du hast mich gerettet :coder2:
Wenn es jetzt noch transparent wäre, wär ich glücklich :). |
Re: Eigenen Brush Style
Ach ja, noch in Nachtrag: Das Bitmap sollte genau 8x8 Pixel groß sein
|
Re: Eigenen Brush Style
Zitat:
![]() |
Re: Eigenen Brush Style
Ja, hab ich, aber bei mir isses trotzdem nich transparent. Hm, ich muss nochmal drüber schauen... :?:
|
Re: Eigenen Brush Style
Ich kapier das noch nich so ganz, also hier mal mein Codeausschnitt:
Delphi-Quellcode:
Ich brauche doch mein Rechteck als Begrenzung, ich kann das doch nich irgendwie durch Canvas.Draw ersetzen...Mag sein, dass ich mich momentan extra doof anstelle, aber :roll: ...
if (Background = true) then
begin Bmp := TBitmap.Create; Bmp.Width := 4; Bmp.Height := 4; Bmp.Canvas.Pen.Width := 2; Bmp.Canvas.Pen.Color := clBlack; Bmp.Transparent := true; Bmp.TransparentColor := clWhite; Bmp.TransparentMode := tmFixed; Bmp.Canvas.MoveTo(Round(Bmp.Width/2), Round(Bmp.Height/2)); Bmp.Canvas.LineTo(Round(Bmp.Width/2), Round(Bmp.Height/2)); Canvas.Brush.Bitmap := Bmp; end else Canvas.Brush.Style := bsSolid; Rect.TopLeft := P; Rect.BottomRight := Q; Canvas.Rectangle(Rect); |
Re: Eigenen Brush Style
Also: Du malst das, was du anzeigen willst, auf einen nicht sichtbaren Canvas (z.B. auf einem TBitmap). Dann kopierst du das ganze mittels Canvas.Draw auf den sichtbaren Canvas, dabei gibst du als TGraphic eben deine unsichtbare Quelle als Parameter an - Fertig ist ide Transparenz.
|
Re: Eigenen Brush Style
Ja, jetzt hab ich es :), nochmal danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz