AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Position von Quadraten kontrollieren
Thema durchsuchen
Ansicht
Themen-Optionen

Position von Quadraten kontrollieren

Ein Thema von Jörn · begonnen am 3. Sep 2004 · letzter Beitrag vom 3. Sep 2004
Antwort Antwort
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#1

Position von Quadraten kontrollieren

  Alt 3. Sep 2004, 12:52
Okay heute mal eine Frage die nicht direkt mit Delphi zu tun hat. Ich schreibe ein kleines Tool, und dafür brauche ich einen kleinen Denkansatz. Es geht darum:
Ich habe ein quadratisches Feld, in diesem sind zwei weitere kleine Quadrate, eines oben links, das andere unten rechts. Diese beiden kleinen Quadrate können mit der Maus verschoben werden und dienen dazu, die Eckpunkte eines Rechtecks anzugeben, das wiederum im ersten, großen Quadrat sein soll.
Mein Problem ist nun: Wie verhindere ich möglichst elegant, dass das untere rechte Quadrat nicht über und/oder links vom anderen Quadrat ist, bzw umgekehrt? Ich hoffe ihr versteht was ich meine... kompliziert zu erklären.

Danke schon mal, MfG
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Position von Quadraten kontrollieren

  Alt 3. Sep 2004, 13:07
Naja, du musst ja die jeweiligen Koordinaten der Quadrate speichern. Und beim Verschieben müsstest du im Prinzip überprüfen, ob sie sich schneiden. Ich denke du würst hier fündig werden, wenn du nach Hier im Forum suchenKollision oder Hier im Forum suchenüberschneiden suchst.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Position von Quadraten kontrollieren

  Alt 3. Sep 2004, 13:15
also du kannst die verschieben???
in welcher form hast du die den vorliegen?

als ne art componente?

dann kannst du einfach sagen

Delphi-Quellcode:
//wenn die höhen falsch sind
if rechteck1.Top>rechteck2.Top //wenn zweites höher liegt als erstes
then Rechteck2.Top:=Rechteck1.Top; //dann angleichen

if rechteck1.Top+rechteck1.Hight>rechteck2.Top+rechteck2.Hight //wenn erstes tiefer liegt
then Rechteck1.High:=Rechteck2.Top+Rechteck2.High-Rechteck1.Top;//dann angleichen

//wenn die seiten falsch sind
if rechteck1.Left>rechteck2.Left //wenn zweites weiter links liegt als erstes
then Rechteck2.Left:=Rechteck1.Left;//dann angleichen

if rechteck1.Left+rechteck1.Width>rechteck2.Left+rechteck2.Width //wenn erstes weiter rechts liegt
then Rechteck1.Width:=Rechteck2.Left+Rechteck2.Width-Rechteck1.Left;//dann angleichen
wenn du das aber zb als canvas-"gemälde" hast, dann habich hglaub ich dier frage missverstanden...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#4

Re: Position von Quadraten kontrollieren

  Alt 3. Sep 2004, 13:46
Stop! Das Prinzip ist das gleiche. Du musst die Position du speichern!
Alexander
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#5

Re: Position von Quadraten kontrollieren

  Alt 3. Sep 2004, 13:58
Hmm ich glaube ich verhindere diesen Tausch der Seiten einfach dadurch, dass ich die Region für den Mauszeiger mittels ClipCursor begrenze. Es scheint niemandem eine schönere Lösung einzufallen. Bin aber für weitere Ideen offen. Diese kleinen Quadrate zeichne ich übrigens selber. Wollte das erst mit 2 TShape's machen, die sehen aber komisch aus wenn ich die entsprechend klein mache (etwa 9*9 Pixel).
  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 11:00 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