AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Prism LineTo "löschen" ...
Thema durchsuchen
Ansicht
Themen-Optionen

LineTo "löschen" ...

Ein Thema von kezboard · begonnen am 23. Nov 2005 · letzter Beitrag vom 23. Nov 2005
Antwort Antwort
kezboard

Registriert seit: 23. Nov 2005
1 Beiträge
 
#1

LineTo "löschen" ...

  Alt 23. Nov 2005, 18:11
hi,

ich will auf ein Image mit Canvas eine Linie zeichnen mit der Maus zeichnen können. Das ist auch kein Problem nur ich will bei gedrückter Maus jetzt schon die Linie angezeigt bekommen und die entgültige Linie dann erst auf der Leinwand speichern. Im Moment sieht das noch sehr unglücklich aus (siehe Screenshot). Ich bruach eine eine Möglichkeit etwas sozu sagen rückgänig zu machen oder mit der alten Farbe zu überschreiben.

Vielen Dank im vorraus!

mfg

Joachim

[edit=Sharky]Anhang von BMP nach PNG konvertiert. Bitte nicht unnötig große Bilder anhängen. Die User mit einem Modem werden es Dir danke. Mfg, Sharky[/edit]
Miniaturansicht angehängter Grafiken
blaaa_127.png  
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:21
HallO!

Vielleicht hilft dir System.Windows.Forms.ControlPaint.DrawReversibleLi ne weiter.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#3

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:22
hi.
mach es so, das du das originalbild im speicher hast und dieses auf die paintbox kopierst und mit der linie drüberzeichnest und das jeden "on mouse move" wärend dem klicken oder so.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:24
Zitat von supermuckl:
hi.
mach es so, das du das originalbild im speicher hast und dieses auf die paintbox kopierst und mit der linie drüberzeichnest und das jeden "on mouse move" wärend dem klicken oder so.
IMHO ist es mit der DrawReversibleLine aber westentlich einfacher.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#5

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:26
jetzt denke aber mal weiter.. wenn er so eine art sprühdose machen will als nächstes, wie will er das dann realisieren?
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:40
Zitat von supermuckl:
jetzt denke aber mal weiter.. wenn er so eine art sprühdose machen will als nächstes, wie will er das dann realisieren?
System.Windows.Forms.ControlPaint.DrawReversibleSprühdose

das musste ma sein sry xD
Michael
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 18:41
Das ist aber in seinem Screenshot nicht zu erkennen....
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#8

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 20:46
ok wir haben beide recht
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#9

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 21:23
Aber auf sienem Screenshot ist zu erkennen, dass er Delphi7 nutzt, also sollte man auch entsrpechend antworten @faux
Aber ich kann das gut nachvollziehen, ich hab auch überlegt, ob ich ne .NET-Lösung vorschlage

@kezboard: Nachdem du mit Delphi7 arbeitest, wähle bitte nicht Delphi.NET als Sprache aus, sondern Win32
Im Delphi7-Handbuchsatz wird das ganz einfach so gemacht, dass man sich den Punkt merkt, von dem die Linie ausgeht. Wenn man dann die Maus bewegt, wird die neue Linie gezeichnet und die alte gelöscht.

Wir brauchen folgende Variablen:
Drawing: Boolean;
Origin, MovePt: TPoint;

Im OnMouseDown der Form/PaintBox/wasauchimmer:
Delphi-Quellcode:
Drawing := true;
Canvas.MoveTo(X, Y);
Origin := Point(X, Y);
MovePt := Point(X, Y);
Im MouseUp:
Delphi-Quellcode:
Canvas.MoveTo(Origin.X, Origin.Y);
Canvas.LineTo(X, Y);
Drawing := false;
Im MouseMove:
Delphi-Quellcode:
if Drawing then
  begin
   Canvas.Pen.Mode := pmNotXor;
   Canvas.MoveTo(Origin.X, Origin.Y);
   Canvas.LineTo(MovePt.Y, MovePt.Y);
   Canvas.MoveTo(Origin.X, Origin.Y);
   Canvas.LineTo(X, Y);
  end;
 MovePt := Point(X, Y);
 Canvas.Pen.Mode := pmCopy;
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: LineTo "löschen" ...

  Alt 23. Nov 2005, 21:26


Ja, ich schaue normalerweise eher auf die Form selbst und nicht auf das 16x16 Pixel große Icon links oben...
Aber ja, stimmt. Hätte man machen sollen. Aber eigentlich ist es doch die Arbeit des Posters, auszuwählen, welche Sprache er benutzt, und nicht die der Antwortsuchenden....

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  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 07:35 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