![]() |
Problem beim Drucken mit einer Bitmap als Brush
Morgen!
Weiß einer, woran es liegen könnte, dass meine Bitmap, die als Brush des Canvas benutzt wird, beim Drucken schlichtweg ignoriert wird? Gibt es da etwas, dass man beachten muss? Schon einmal Danke im Vorraus für jeden Tipp! LG, Laura |
Re: Problem beim Drucken mit einer Bitmap als Brush
Hallo Laura,
ist es nicht so, dass eine Bitmap, die als Brush verwendet wird, nur 8x8 Pixel gross sein darf. Und auf einem Drucker ist 8x8 so gut wie nichts, in der Regel zumindest weniger als 1 Quadratmillimeter Klaus |
Re: Problem beim Drucken mit einer Bitmap als Brush
Also die ist bei mir sogar nur 3x3 groß. Das heißt, der Drucker malt die Bitmap nur einmal und füllt den Canvas nicht ganz damit aus wie sonst? Wie kann ich das Problem denn dann beheben?
|
Re: Problem beim Drucken mit einer Bitmap als Brush
könntest du bitte etwas quelltext zeigen was genau du machst?
|
Re: Problem beim Drucken mit einer Bitmap als Brush
Klar:
Ich übergebe entweder Printer.Canvas oder Self.Canvas, je nach dem ob ich meine Graphik einfach auf dem Bildschirm oder auf dem Drucker ausgeben möchte. BackgroundBitmap ist global definiert und wird im Konstruktor der Form angelegt.
Delphi-Quellcode:
FBackgroundBitmap := TBitmap.Create;
FBackgroundBitmap.Canvas.Pen.Width := 2; FBackgroundBitmap.Canvas.Pen.Color := clBlack; FBackgroundBitmap.Transparent := True; FBackgroundBitmap.Width := 3; FBackgroundBitmap.Height := 3;
Delphi-Quellcode:
procedure DrawOuterRect(ACanvas: TCanvas; ARect: TRect; Layer: Integer; Background: Boolean; Offset: Integer);
var BorderColor: TColor; begin Offset := Max(1, GetLogicalUnit(ACanvas, Offset)); ACanvas.Pen.Width := Max(1, GetLogicalUnit(ACanvas, Border)); BorderColor := LayerColorScheme(Layer); ACanvas.Brush.Color := BorderColor; if (Background) then begin BackgroundBitmap.Canvas.Brush.Color := BorderColor; BackgroundBitmap.Canvas.FillRect(Rect(0,0,FBackgroundBitmap.Width, FBackgroundBitmap.Height)); BackgroundBitmap.Canvas.MoveTo(Round(FBackgroundBitmap.Width/2), Round(FBackgroundBitmap.Height/2)); BackgroundBitmap.Canvas.LineTo(Round(FBackgroundBitmap.Width/2), Round(FBackgroundBitmap.Height/2)); BackgroundBitmap.Canvas.Brush.Color := LayerColorScheme(Layer); ACanvas.Brush.Bitmap := BackgroundBitmap; end //if(Background) else ACanvas.Brush.Style := bsSolid; ACanvas.Pen.Color := GraphUtil.GetShadowColor(BorderColor, -100); ACanvas.Rectangle(ARect); end; |
Re: Problem beim Drucken mit einer Bitmap als Brush
Funktioniert jetzt, danke! Hatte was übersehen an anderer Stelle...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 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