|
| |

Fortgeschrittene Programmierung| Die (erste) Lösung | |  | | Autor: reini69 | | Datum: 16.04.09 15:02 |
| Hab es mittlerweile selbst gelöst. Hier meine Vorgehensweise, falls es jemanden interessiert.
Wie in meiner ursprünglichen Frage schon beschrieben, werte ich das Drücken der rechten Maustaste (MouseDown-Event), das Ziehen der Maus (MouseMove-Event) und das Loslassen der rechten Masustaste (MouseUp-Event) aus. Alle Events liefern mir die Koordinaten der Maus. Jedes Koordinatenpaar lege ich als eigenes Objekt in einer Collection ab. Weiterhin hab ich mir vier Merker-Variablen angelegt, in denen ich mir merke, an welcher Stelle innerhalb der Collection das Element mit dem jeweils größten und kleinsten X- bzw. Y-Wert liegt. Ich merke mir aber, wie gesagt, nur den Index dieses Objekts innerhalb der Collection. Immer wenn ich ein neues Objekt zur Collection hinzufüge, vergleiche ich den X- und Y-Wert dieses neuen Objekts mit den X- und Y-Werten der Collection-Elemente die durch die beschriebenen Indizes als die größten und kleinsten ausgewiesen werden. Wenn nötig, werden die Indizes dann aktualisiert. Wenn die ganze Mausbewegung beendet ist (Loslassen der rechten Maustaste), werte ich alles aus. Ich habe als Bedingung festgelegt, dass die Kreisbewegung immer "oben", also praktisch "auf 12 Uhr" beginnen muss. Somit muss das mein YMinIndex (YMin, weil VB6-Koordinatensystem den Y-Nullpunkt oben hat) den kleinsten aller MinMax-Indizes haben. Ist diese Bedingung nicht erfüllt, dann war es keine Kreisbewegung und ich breche sofort ab (es gibt eine Ausnahme, aber der Einfachheit lass ich die mal aus der Beschreibung weg). Um eine normale Kreisbewegung zu haben muss der nächstkleinere Indexwert der des XMin (bei Gegenuhrzeigersinn-Bewegung) oder der XMax (Uhrzeigersinn) sein. Ist dies nicht der Fall (also wenn YMaxIndex den nächstkleineren Index hat) ist es auch keine schöne Kreisbewegung und ich breche wieder ab. Andernfalls kann ich auch sofort entscheiden in welche Richtung die Kreisbewegung ausgeführt wurde. Als nächstkleinerer Index muss dann der YMax (also der unterste Punkt des Kreises "auf 6 Uhr") kommen. Ist das der Fall bleibt nur doch der andere XIndex übrig und fertig ist der Kreis.
Einfch, oder?  |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|