![]() |
Canvas.Brush.Style := bsCross // Problem
Hallo,
ich habe ein Problem mit dem Canvas, und zwar ist wenn ich ein Rechteck (Mit Style bsCross) im TImage über die ganze Fläche zeichne dieses versetzt, die äußerste Linie stimmt nicht mit dem Rand vom TImage überein.Gibt es da irgendeinen Trick wie ich das verhindern kann? |
Re: Canvas.Brush.Style := bsCross // Problem
Könntest du den Code zum Zeichnen des Rechtecks sowie ein Screenshot, welcher das Problem darstellt, einfügen? Ich habe ein wenig Verständnisprobleme mir den eigentlichen Fehler zu erarbeiten.
Grundlegend verstehe ich dein Problem, kenne es aber nicht, vermute aber ein Verständnisproblem, da Linien und auch Rechtecke immer nur bis zu einem Pixel vor dem Endpunkt bzw. linken unteren Ecke gezeichnet werden. Das ist aber ein grundsätzliches Verhalten der Windows GDI. Daher: Zeig mal Code und Screenshot. |
Re: Canvas.Brush.Style := bsCross // Problem
Delphi-Quellcode:
Screenshot hab ich grad keinen, aber ich erklärs nochmal:
Image.Canvas.Rectangle(0, 0, 500, 500);
// oder Image.Canvas.Rectangle(Image.BoundsRect); // kommt aufs gleiche raus Ich habe ein TImage mit der Größe 500 * 500 , in dieses zeichne ich ein Raster mit dem Code von oben.# Nur sollte die äuserste Linie des Rasters mit der Kante des TImage übereinstimmen, was es aber nicht macht. Es ist also versetzt. Man kann es sich auch wie ein kariertes Blatt vorstellen an dem die Kästchen in der äußersten Reihe nicht mehr komplett sind. |
Re: Canvas.Brush.Style := bsCross // Problem
![]() ![]() ![]() ![]() |
Re: Canvas.Brush.Style := bsCross // Problem
Ja, was ich noch garnicht gesagt habe ist, dass sich im TImage garkein Bild befindet, ich will einfach nur ein Raster über die ganze Fläche zeichnen.
|
Re: Canvas.Brush.Style := bsCross // Problem
Ein TImage hat leider öfters mit solchem Missbrauch zu tun, weshalb automatisch ein TBitmap angelegt wird. Hast du denn schon vorher dieses Bitmap entsprechend vergrößert, so dass es den Abmaßen der TImage Komponente entspricht? Und warum nutzt du ein TImage (welches zum Anzeigen von Bildern dient) nicht mit einem festen Bild welches dein Muster enthält? Wenn du das Muster selber erstellen willst, warum nutzt du nicht die dafür vorgesehene TPaintBox Komponente?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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 by Thomas Breitkreuz