![]() |
Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Hallo,
ich brauche für ein grafisches Analyseprogramm ein großes Cursor-Fadenkreuz. Gibt es eine einfache Prozedur, um so ein Fadenkreuz selbst mit Linien zu zeichnen, wobei das darunterliegende Bitmap natürlich bei jeder Bewegung dieses Fadenkreuzes wiederhergestellt werden soll ?! Matthias Huck |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Nimm ein zweites Bitmap.
Beim malen des Kreuzes malst du zuerst das originale Bitmap und dann darauf dein Fadenkreuz. |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Das heißt, du würdest bei jeder Bewegung des Fadenkreuzes einfach das komplette Bitmap neu kopieren ? Ich hätte nicht gedacht, daß das schnell genug geht, aber ich werde es mal versuchen ...
Danke |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Das Kopieren des Bitmaps ist eine Speicher-Operation, von daher sollte sie schnell gehen (BitBlt wäre das Stichwort). Aus diesem Grund benutzt man ja auch Bitmaps beim DoubleBuffering => male auf ein Bitmap und kopiere das dann auf das Canvas um Flackern zu vermeiden.
|
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Noch eine Möglichkeit, mit pmNotXor kann seine gezeichnete Linie wieder löschen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin//Kreuz Zeichnen Image1.Picture.Bitmap.Canvas.Pen.Mode:= pmNotXor; Image1.Picture.Bitmap.Canvas.MoveTo(0, 16); Image1.Picture.Bitmap.Canvas.LineTo(32, 16); Image1.Picture.Bitmap.Canvas.MoveTo(16, 0); Image1.Picture.Bitmap.Canvas.LineTo(16, 32); end; procedure TForm1.Button2Click(Sender: TObject); begin//Kreuz wieder löschen Image1.Picture.Bitmap.Canvas.Pen.Mode:= pmNotXor; Image1.Picture.Bitmap.Canvas.MoveTo(0, 16); Image1.Picture.Bitmap.Canvas.LineTo(32, 16); Image1.Picture.Bitmap.Canvas.MoveTo(16, 0); Image1.Picture.Bitmap.Canvas.LineTo(16, 32); end; |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Das ist die beste Methode. Nur muss für das normale Zeichnen pmCopy verwendet werden.
|
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Danke,
beide Methoden kann ich an bestimmten Stellen meines Programms gebrauchen ! Noch eine Frage: Die Hilfe von Delphi 2005 scheint ziemlich unvollständig zu sein; über diese Sachen finde ich überhaupt nicht. Kann mir jemand sagen, wo man sich in Sachen Grafikfunktionen informieren kann ? Oder übersehe ich in der Hilfe etwas ? |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
ein bisschen was
![]() |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Ja, das hatte ich schon gefunden.
Ich bin etwas schockiert, daß in der (neueren) Delphi-Hilfe grundlegende Begriffe nicht mehr erklärt werden; z.B. gibt die Suche nach 'TColor' keinen einzigen Treffer, und das gilt für viele Begriffe. Ist das ein allgemein bekanntes Problem, daß die Hilfe schlechter geworden ist ? Ich meine z.B., daß bei meinem alten Delphi6 viel mehr drin stand als bei Delphi 2005.... |
Re: Linie zeichnen, ohne das Bitmap zu 'beschädigen'
Hi!
Ich habe gerade deinen letzen Beitrag gelesen. Auf ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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