Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Anfangspunkt in Paintbox (https://www.delphipraxis.net/43484-anfangspunkt-paintbox.html)

strolchi 4. Apr 2005 20:11


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ß

toms 4. Apr 2005 20:29

Re: Anfangspunkt in Paintbox
 
Hallo!

So kannst du zu einer bestimmter Koordinate springen:

PaintBox.Canvas.MoveTo(x, y);

DGL-luke 4. Apr 2005 21:17

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?)

himitsu 5. Apr 2005 11:39

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);

shmia 5. Apr 2005 12:23

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.

himitsu 5. Apr 2005 12:28

Re: Anfangspunkt in Paintbox
 
Zitat:

Zitat von shmia
Häufig wird der Fehler gemacht, dass ausserhalb des Events OnPaint auf den Canvas gezeichnet wird; dass wäre aber ein Fehler.

Fehler?

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?

shmia 5. Apr 2005 12:45

Re: Anfangspunkt in Paintbox
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von shmia
Häufig wird der Fehler gemacht, dass ausserhalb des Events OnPaint auf den Canvas gezeichnet wird; dass wäre aber ein Fehler.

Fehler?
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?

Dann musst du ja an 2 Stellen den Code fürs Zeichnen bereithalten:
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:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
   ZeichneTeil1(PaintBox1.Canvas);
   ZeichneTeil2(PaintBox1.Canvas);
   ZeichneTeil3(PaintBox1.Canvas);
end;
Wenn zu einem "anderen" Zeitpunkt weisst, dass Teil2 sich geändert hat, dann kannst du
Delphi-Quellcode:
begin
  ...
  ZeichneTeil2(PaintBox1.Canvas);
  ...
end;
ansonsten ist PaintBox1.Invalidate die saubere Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 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