AGB  ·  Datenschutz  ·  Impressum  







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

Mit Mausklicks Koordinaten festlegen

Ein Thema von Fransoir · begonnen am 30. Jan 2007 · letzter Beitrag vom 30. Jan 2007
Antwort Antwort
Fransoir

Registriert seit: 29. Jan 2007
8 Beiträge
 
#1

Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 16:30
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.
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 17:02
Hallo!

Ich habe kein .NET, daher ist der folgende Code für W32,
aber vom Prinzip her ist das ja ähnlich.

Delphi-Quellcode:
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.
Du erweiterst bei jedem Klick ein Array von TPoint (bei .NET wird's wohl anders heißen)

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
Jürgen Höfs
Jürgen Höfs / picoly.de
  Mit Zitat antworten Zitat
Fransoir

Registriert seit: 29. Jan 2007
8 Beiträge
 
#3

Re: Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 17:12
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.
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 17:17
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
Angehängte Dateien
Dateityp: zip polygon_293.zip (11,7 KB, 4x aufgerufen)
Jürgen Höfs
Jürgen Höfs / picoly.de
  Mit Zitat antworten Zitat
Fransoir

Registriert seit: 29. Jan 2007
8 Beiträge
 
#5

Re: Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 17:26
EY Super,

ich danke dir. Sag mal wo kann man solche sehr guten Kenntnisse erwerben.

P.S. Super Homepage und coole Fotos )
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Mit Mausklicks Koordinaten festlegen

  Alt 30. Jan 2007, 17:35
Zitat von Fransoir:
Sag mal wo kann man solche sehr guten Kenntnisse erwerben.
Leider bin ich kein studierter Programmierer -- aber ich versuche
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
Jürgen Höfs
Jürgen Höfs / picoly.de
  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 14:02 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