![]() |
Mit Mausklicks Koordinaten festlegen
Hallo Leute, bin neu im Gebiet Delphi und habe kaum Programmierkenntnisse. Und zwar folgendes. Ich möchte ein Polygon zeichnen. Die Punkte bzw. Koordinaten, werden durch Mausklicks festgelegt. Hier ein kleines Bsp.: Ein Polygon mit fünf Seiten. 1. Klick wird der Startpunkt festgelegt, mit dem zweiten Klick wird ein zweiter Punkt gesetzt und durch eine Linie verbunden. Wenn ich jetzt das dritte mal klicke, soll zu dem dritten Punkt vom zweiten Punkt eine weitere Linie gezogen werden usw. Wie mache ich das. Ich habe es derzeit schon soweit, und das für ein Neuling, dass wenn ich klicke ein Linie entsteht, wobei die Koordinaten des Startpunktes fest eingegeben sind.
|
Re: Mit Mausklicks Koordinaten festlegen
Hallo!
Ich habe kein .NET, daher ist der folgende Code für W32, aber vom Prinzip her ist das ja ähnlich.
Delphi-Quellcode:
Du erweiterst bei jedem Klick ein Array von TPoint (bei .NET wird's wohl anders heißen)
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure PaintBox1Paint(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } Points: array of TPoint; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin SetLength(Points, length(Points)+1); Points[length(Points)-1].X:= X; Points[length(Points)-1].Y:= Y; PaintBox1.Invalidate; end; procedure TForm1.PaintBox1Paint(Sender: TObject); begin If length(Points) = 0 then exit; with Sender as TPaintBox do begin Canvas.Pen.Color := clBlack; Canvas.Polyline(Points); end; end; end. Dann sagst du der Zeichenbox (hier: TPaintBox), sie soll sich aktualisieren. Dann übergibst du die "gesammelten" Koordinaten an eine Polygon-Zeichenfunktion (hier: Polyline) Willst du neu zeichen oder den letzen Punkt löschen, löschst du den ensprechenden Eintrag im Array (bzw. alles) Gruß Pfoto |
Re: Mit Mausklicks Koordinaten festlegen
Danke für den Aufabu, jedoch meine Frage wofür ist der Button und warum werden bei mir keine Linien gezeichnet. P.S. Sorry habe doch WIN32 war nur ein verklicker. :roll:
|
Re: Mit Mausklicks Koordinaten festlegen
Liste der Anhänge anzeigen (Anzahl: 1)
Der Button ist nun weg -- hatte keine Bedeutung.
Ich habe dir mal eine kleine Projektdatei gemacht, du findest sie im Anhang (erstellt mit Delphi 7) Gruß Pfoto |
Re: Mit Mausklicks Koordinaten festlegen
EY Super,
ich danke dir. Sag mal wo kann man solche sehr guten Kenntnisse erwerben. P.S. Super Homepage und coole Fotos :o) |
Re: Mit Mausklicks Koordinaten festlegen
Zitat:
seit ca. 1 Jahr mir intesiv die wichtigsten Sachen beizubringen. Vieles habe ich hier im Forum gelernt -- und es sollte das Prinzip eines Forums sein, dass man dann irgendwann auch weiterhilft -- sofern man kann... Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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-2025 by Thomas Breitkreuz