![]() |
Anfangspunkt in Paintbox
Hallo!!
Hab folgendes Problem: hab ein Programm, mit dem ich Koordinaten eines Markers auslesen kann! Kann diese Koordinaten auch schon in einer Paintbox darstellen... nun soll aber das Programm an einer ganz bestimmten Stelle der Paintbox anfangen zu zeichnen!! Wie bekomme ich das hin?? Vielen dank schon Mal!! Gruß |
Re: Anfangspunkt in Paintbox
Hallo!
So kannst du zu einer bestimmter Koordinate springen: PaintBox.Canvas.MoveTo(x, y); |
Re: Anfangspunkt in Paintbox
das weiss er wohl schon, wenn er schon in eine paintbox zeichnen kann ?!
also: variablen xoffset,yoffset:integer deklarieren, diese zuweisen auf das offset(den anfangspunkt), und bei jeder darauffolgenden zeichenoperation immer eine der beiden entsprechend hinzuaddieren zu deinen koordinaten.(versteht man das so?) |
Re: Anfangspunkt in Paintbox
Wenn du nur die Koordinaten innerhalb der Paintbox umdrehen willst, dann kannst du auch die Breite/Höhe der Box verwenden
Z.B. die X-Achse umgedreht.
Code:
PaintBox.Canvas.MoveTo([color=#ff0000]PaintBox1.Width - 1 - [/color]x, y);
|
Re: Anfangspunkt in Paintbox
Zeigt mal deinen Sourcecode (vom OnPaint Eventhandler).
Häufig wird der Fehler gemacht, dass ausserhalb des Events OnPaint auf den Canvas gezeichnet wird; dass wäre aber ein Fehler. |
Re: Anfangspunkt in Paintbox
Zitat:
Ich zeichne sehr oft außerhalb dieses Events darauf. Im OnPaint wird (bei mir) nur etwas neugezeichnet, wenn z.B. ein Teil verdeckt war ... Wuzu muß/soll man erst 'ne Umleitung über OnPaint machen, wenn es an den "anderen" Stellen, also dort wo sich etwas ändern soll, diese Veränderung direkt reinzeichnet? |
Re: Anfangspunkt in Paintbox
Zitat:
einmal an der "anderen" Stelle und dann im OnPaint-Eventhandler. Jederzeit kann die Paintbox von einem Fenster überdeckt werden; beim wiederaufdecken wird OnPaint aufgerufen. Wenn das Zeichnen aus 3 Dingen besteht, kann man den OnPaint-Eventhandler auch so schreiben:
Delphi-Quellcode:
Wenn zu einem "anderen" Zeitpunkt weisst, dass Teil2 sich geändert hat, dann kannst du
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin ZeichneTeil1(PaintBox1.Canvas); ZeichneTeil2(PaintBox1.Canvas); ZeichneTeil3(PaintBox1.Canvas); end;
Delphi-Quellcode:
ansonsten ist PaintBox1.Invalidate die saubere Lösung.
begin
... ZeichneTeil2(PaintBox1.Canvas); ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 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