AGB  ·  Datenschutz  ·  Impressum  







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

Mittelpunkt von Timage rausfinden

Ein Thema von xxsasch4xx · begonnen am 25. Jan 2011 · letzter Beitrag vom 25. Jan 2011
Antwort Antwort
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#1

Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 08:33
Ich habe ein Programm programmiert in dem man die Bilder in den Images verschieben kann.
Ich will es so erweitern, dass wenn man ein Bild über den Mittelpunkt des anderen Bild schiebt, dass dann diese Bilder automatisch getauscht werden.
Die Bilder habe ich in einem Array angelegt, das tauschen wäre also kein Problem.
Die Bilder sollen natürlich auch tauschen, wenn das eine bild den Mittelpunkt vom anderen Bild zum Beispiel nur mit einer ecke berührt!
Es soll nicht nur dann tauschen, wenn das bild komplett darüber liegt.
Wenn der Mittelpunkt nicht berührt wird, wird das Bild wieder zurückgesetz.

Ich brauche also irgentwie die Koordinaten vom Mittelpunkt des Bildes.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 08:34
Die Eigenschaften Left, Top, Width und Height helfen dir
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.430 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 09:13
Mittelpunkt ist einfach:
Delphi-Quellcode:
x := (Left + Right) div 2;
y := (Top + Bottom) div 2;
  Mit Zitat antworten Zitat
xxsasch4xx

Registriert seit: 1. Mär 2010
210 Beiträge
 
#4

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 09:30
Aber ich will das Programm ja so machen, dass die Bilder getauscht werden egal an welcher Stelle das verschobene bild die Mitte vom anderen Bild berührt
sonst muss man das bild ja genau dadrüber halten zum tauschen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 09:33
Die Mitte kannst Du ja errechnen. Nun ermittelst Du mit IntersectRect das Rechteck der Überlappung und prüfst mit PtInRect, ob der Mittelpunkt in diesem Rechteck enthalten ist. Wenn ja, dann tauschen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 09:36
Man kann auch gleich mit PtInRect prüfen, ob der Mittelpunkt von Image A im Bereich von Image B liegt. IntersectRect braucht man dafür nicht mal...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 09:39
Stimmt, da hab ich zu weit gedacht. Allerdings sollte man nach dem Tauschen ein Flag setzen, sonst würde ja gleich wieder getauscht, wenn ich das richtig verstanden habe.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 11:59
Ich habe das etwas komplexer gelöst. Falls Dich der Ansatz interessiert, kann ich Dir mal etwas Quellcode zeigen (ist aber recht umfangreich).

Ich habe Panels in einer ScrollBox. Diese sind Align=alNone!
Wenn der User ein Panel verschiebt, wird dieses als DragPanel gemerkt, mit BringToFront in den Vordergrund gesetzt und an die neue Position gesetzt.

In dem Moment werden existierende Panels "virtuell" entsprechend vor oder nach das DragPanel verschoben (nur in einer Soll-Position).
Gleichzeitig wird ein Timer gestartet, der die Panels (außer das DragPanel) von der aktuellen Position schrittweise zur Sollposition schiebt.
Wird das DragPanel weiter geschoben, wiederholt sich der Vorgang.

Wird der DragVorgang beendet, wird auch das DragPanel an die Zielposition verschoben. Der Timer wird beendet, wenn alle Zielpositionen erreicht sind.

Dadurch erhält man sehr fließende Positionsänderungen.

(Kann man im "Olympic" auf meiner Homepage im Formular "Verein bearbeiten" mit dem Verein "Halle 06 e.V." am besten nachvollziehen.)

EDIT: Ich kann heute Abend auf Wunsch mal ein Video zeigen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (25. Jan 2011 um 12:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Mittelpunkt von Timage rausfinden

  Alt 25. Jan 2011, 13:11
Aber ich will das Programm ja so machen, dass die Bilder getauscht werden egal an welcher Stelle das verschobene bild die Mitte vom anderen Bild berührt
sonst muss man das bild ja genau dadrüber halten zum tauschen
Grundsätzlich musst Du prüfen, ob das DragImage ursprünglich weiter links ist als das DropImage UND sich die horizontale Mitte das DragImage weiter rechts befindet als die des DropImage. Dann musst Du tauschen.
Analog in die andere Richtung und für die vertikale Ausrichtung.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  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:17 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