22 Stimmen

Delphi: Zwei Punkte (TPoint) vergleichen - Sind zwei Punkte identisch?

Tipp von Delphianer | 20.04.2013 um 17:20

Fragestellung: Wir möchten 2 Punkte des Typs TPoint miteinander vergleichen, also überprüfen, ob beide Punkte die gleichen Koordinaten haben.

Problem: Es ist leider nicht möglich die Punkte mit P1 = P2 oder P1<> P2 miteinander zu vergleichen. Das liegt daran, dass Punkte Records sind, ein Punkt also sowohl aus einem X als auch einem Y Bestandtteil besteht. Solche komplexeren Datentypen lassen sich nicht ohne weiteres miteinander vergleichen.

Lösung: Sowohl Delphi als auch Lazarus stellen uns die Funktion PointsEqual zur Verfügung. Übergeben wir als Parameter zwei Punkte, bekommen wir true oder false zurück, je nachdem ob die Punkte gleich oder ungleich sind.

Beispiel: Verdeutlicht ist dies in folgendem Beispiel.

var
  P1, P2, P3: TPoint;
begin
  P1 := Point(1, 1);
  P2 := Point(1, 1);
  P3 := Point(1, 2);

  if PointsEqual(P1, P2) then showmessage('P1 und P2 sind identisch!');
  if PointsEqual(P1, P3) then showmessage('P1 und P3 sind identisch!');
end;

Wir definieren uns drei Punkte P1, P2 und P3, von denen P1 und P2 identisch sind. Anschließend testen wir die Punkte mit PointsEqual und bekommen die Nachricht "P1 und P2 sind identisch!" ausgegeben.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

PHP: Zeit und Performance messen

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.