AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Canvas.Brush.Style := bsCross // Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas.Brush.Style := bsCross // Problem

Ein Thema von Adrian112 · begonnen am 1. Feb 2008 · letzter Beitrag vom 1. Feb 2008
Antwort Antwort
Adrian112
(Gast)

n/a Beiträge
 
#1

Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 12:33
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?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 16:18
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.
  Mit Zitat antworten Zitat
Adrian112
(Gast)

n/a Beiträge
 
#3

Re: Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 17:01
Delphi-Quellcode:
Image.Canvas.Rectangle(0, 0, 500, 500);
// oder
Image.Canvas.Rectangle(Image.BoundsRect);
// kommt aufs gleiche raus
Screenshot hab ich grad keinen, aber ich erklärs nochmal:
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 17:05
Delphi-Referenz durchsuchenTImage.BoundsRect oder auch Delphi-Referenz durchsuchenTImage.ClientRect sind die Abmasse bzw. Position der TImage Komponente und nicht die des darin enhaltenen Bildes. Diese Abmaße findest du unter der Picture Eigenschaft: Delphi-Referenz durchsuchenTImage.Picture.Width und Delphi-Referenz durchsuchenTImage.Picture.Height.
  Mit Zitat antworten Zitat
Adrian112
(Gast)

n/a Beiträge
 
#5

Re: Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 17:16
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Canvas.Brush.Style := bsCross // Problem

  Alt 1. Feb 2008, 18:54
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?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 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