Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DrawBox Hilfe (https://www.delphipraxis.net/139001-drawbox-hilfe.html)

Linguini 21. Aug 2009 13:08


DrawBox Hilfe
 
Hallo,

ich möchte gerne, das der Benutzer auf einem festgelegten Bereich "malen" kann. Es sollen nur einfache schwarze Striche sein.
Danach soll Pixel für Pixel das gemalte mit einem vorher definierten Bild verglichen werden.
Was nehme ich dafür am besten?

DrawBox? Nur leider kann ich da drauf nicht malen...

Der Vergleich müsste ja mit "GetPixel" funktionieren.

Danke.

Forlan 21. Aug 2009 13:16

Re: DrawBox Hilfe
 
Du könntest eine Instanz vom Typ TImage aus der Unit ExtCtrls erstellen. Darauf kannst du mit TCanvas malen, und auch die Pixelpositionen vergleichen.

DeddyH 21. Aug 2009 13:24

Re: DrawBox Hilfe
 
Zum Selbermalen ist eine TPaintBox aber wahrscheinlich die bessere Wahl.

Forlan 21. Aug 2009 13:55

Re: DrawBox Hilfe
 
Zitat:

Zitat von DeddyH
Zum Selbermalen ist eine TPaintBox aber wahrscheinlich die bessere Wahl.

Jetzt möchte ich bitte noch die Erklärung haben wieso :stupid:

(hab noch nie damit gearbeitet, darum die Frage :mrgreen: )

Progman 21. Aug 2009 14:00

Re: DrawBox Hilfe
 
TPaintBox ist schlanker und schneller als TImage.

Linguini 21. Aug 2009 14:14

Re: DrawBox Hilfe
 
Also ich denke Geschwindigkeit spielt in meinem Fall keine Rolle. Es sind nur sehr kleine Zeichnungen.

Jetzt ist nur die Frage wie ich es anstelle das dort wo ich hinklicke auf "gemalt" wird?

Forlan 21. Aug 2009 14:36

Re: DrawBox Hilfe
 
Beim onClick Event.:
Delphi-Quellcode:
Image1.canvas.Pixels[x,y]:= clBlack
;
Damit kannst du dann auch überprüfen welche farbe an der Stelle x|y ist.
Also so wäre es bei TImage.

MfG

mkinzler 21. Aug 2009 14:37

Re: DrawBox Hilfe
 
Da dies eine Methode von TCanvas ist, ist es egal ob dieser Teil eines Images, eines Formulars oder einer Paintbox ist.

Linguini 21. Aug 2009 14:55

Re: DrawBox Hilfe
 
:) Vielen Dank für eure Hilfe.

Ich hab es jetzt so gelöst:

Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);

begin

Image1.canvas.Pixels[xPos,yPos]:= clBlack
end;


procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  xPos := X;
  yPos := Y;
end;

end.
Ich kann nun auch einzelne Punkte setzen, super wäre aber wenn man auch durch gedrückt halten gleich ganze Linien zeichnen könnte.
Ist das auch möglich?

Forlan 21. Aug 2009 14:57

Re: DrawBox Hilfe
 
Klar ist das möglich^^

boolean variable + if Abfrage beim mousemove event


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.
Seite 1 von 2  1 2      

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