AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anfangspunkt in Paintbox

Ein Thema von strolchi · begonnen am 4. Apr 2005 · letzter Beitrag vom 5. Apr 2005
Antwort Antwort
strolchi

Registriert seit: 27. Jan 2005
1 Beiträge
 
#1

Anfangspunkt in Paintbox

  Alt 4. Apr 2005, 21:11
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ß
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Anfangspunkt in Paintbox

  Alt 4. Apr 2005, 21:29
Hallo!

So kannst du zu einer bestimmter Koordinate springen:

PaintBox.Canvas.MoveTo(x, y);
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Anfangspunkt in Paintbox

  Alt 4. Apr 2005, 22:17
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?)
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Anfangspunkt in Paintbox

  Alt 5. Apr 2005, 12:39
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);
$2B or not $2B
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Anfangspunkt in Paintbox

  Alt 5. Apr 2005, 13:23
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.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Anfangspunkt in Paintbox

  Alt 5. Apr 2005, 13:28
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?
$2B or not $2B
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Anfangspunkt in Paintbox

  Alt 5. Apr 2005, 13:45
Zitat von himitsu:
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.
Andreas
  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 09:15 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