![]() |
Canvas Bezugspunkt ändern
Ist es möglich bei Zeichnungen auf der Form mit Hilfe von canvas den Bezugspunkt(0,0)zu ändern?
Das würde mir die Arbeit an meinem Zeichenprogramm erheblich erleichtern(weniger Quelltext). |
Re: Canvas Bezugspunkt ändern
Was meinst du mit Bezugspunkt? :gruebel:
|
Re: Canvas Bezugspunkt ändern
Aus dem Kopf (also ungetestet):
Delphi-Quellcode:
Weiß aber nicht mehr genau, wie du bei X und Y die Vorzeichen setzen musst.
SetWindowOrgEx(Canvas.Handle, x, y, nil);
|
Re: Canvas Bezugspunkt ändern
Ich meine den Punkt,nach dem sich canvas beim Zeichnen richtet.
(die linke obere Ecke) zB beim Zeichnen eines Rechteckes
Delphi-Quellcode:
Ich möchte jetzt den "Bezugspunkt" auf (30,30) verlagern , sodass die folgende Schreibweise genau das selbe Rechteck darstellt.
Form1.canvas.rectangle(30,30,100,100)
Delphi-Quellcode:
@Flocke: Die Methode die du mir gegeben hast setzt den Bezugspunkt nicht auf die Form, sondern auf einen Festen Punkt auf dem "Monitor". So kommt es dazu, dass die Zeichnungen sich verschieben, wenn die Form verschoben wird.
Form1.canvas.rectangle(0,0,70,70)
|
Re: Canvas Bezugspunkt ändern
Zitat:
Gruss Reinhard |
Re: Canvas Bezugspunkt ändern
Es ist zwar das Gegenstück (die Vorzeichen sind entgegengesetzt), aber mein Problem ist noch nicht gelöst.
Alle Zeichnungen orientieren sich immer noch nicht an der Form, sondern an der Position am "Bildschirm". |
Re: Canvas Bezugspunkt ändern
Ist zwar nciht genau was du willst aber so gehts ja auch:
deklarier doch zwei konstanten...
Delphi-Quellcode:
CONST x=30 y=30 Form1.canvas.rectangle(0+x,0+y,70+x,70+y) |
Re: Canvas Bezugspunkt ändern
ja so hab ich es auch schon probiert , aber auf dauer ist mir das einfach zu viel code.
Bei komplexen Algorithmen wird das ganz schön unübersichtlich. |
Re: Canvas Bezugspunkt ändern
Zitat:
Delphi-Quellcode:
Nachtrag: Siehe auch unter
var
pt: TPoint; begin OffsetWindowOrgEx(Canvas.Handle, DeltaX, DeltaY, pt); try // Zeichnen auf Canvas finally SetWindowOrgEx(Canvas.Handle, pt.X, pt.Y, nil); end; end; ![]() |
Re: Canvas Bezugspunkt ändern
Sonst könntest du ja auch erst alles auf ein Offscreen-Bitmap zeichnen und das dann an die Position (30|30) auf das Canvas kopieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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