AGB  ·  Datenschutz  ·  Impressum  







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

Mausposition von gestretchten Bild

Ein Thema von EWeiss · begonnen am 8. Sep 2013 · letzter Beitrag vom 11. Sep 2013
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Mausposition von gestretchten Bild

  Alt 9. Sep 2013, 00:13
Mit dem Dreisatz.
Beispiel:
* das Bitmap hat eine Breite von 1600 Pixel
* Image ist 450 Pixel breit
Der Benutzer klickt ins Image auf die Position (300, 167).
Dann ist die Position im Bitmap
 := (300 * 1600) div 450; Analog geht die Berechnung für die y-Koordinate.
Und das geht dann auch mit einem Buffer?
Dem die weite StretchWidth zugewiesen wird?

Muss ich gleich mal testen.
Danke.

Hmm Image hab ich keins.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Mausposition von gestretchten Bild

  Alt 9. Sep 2013, 00:32
Will nicht.

Delphi-Quellcode:
    WM_LBUTTONDOWN:
      begin
        if (VisInfo^.w > StretchWidth) and (VisDataThread.UseOpenGL = False) then
        begin
          GetCursorPos(CurPos);
          ScreenToClient(WndHandle, CurPos);
          X := (CurPos.X * VisInfo^.w) div StretchWidth;
          Y := (CurPos.Y * VisInfo^.h) div StretchHeight;
          SendMessage(VisDataThread.ParentHandle, WM_LBUTTONDOWN, wParam, MakeLong(x, y));
        end else
        SendMessage(VisDataThread.ParentHandle, WM_LBUTTONDOWN, wParam, lParam);

      end;
Kann den Aufgemalten Dialog nicht schließen.
OK!
Jetzt gehts musste das nur umtauschen..

 := (300 * 1600) div 450;

 := (300 * 450) div 1600;

Danke für die Hilfe.

Falls es mal jemand braucht so ist es richtig.
Delphi-Quellcode:
    WM_LBUTTONDOWN:
      begin
        // Bildschirmweite > Bildweite und kein OpenGL verwenden
        if (VisInfo^.w > StretchWidth) and (VisDataThread.UseOpenGL = False) then
        begin
          GetCursorPos(CurPos);
          ScreenToClient(WndHandle, CurPos);
          // Cursor Position x * Gestretchte Bildweite div BildSchirmweite
          X := (CurPos.X * StretchWidth) div VisInfo^.w ;
          // Cursor Position y * Gestretchte Bildhöhe div BildSchirmhöhe
          Y := (CurPos.Y * StretchHeight) div VisInfo^.h;
          // Message an die Anwendung senden
          SendMessage(VisDataThread.ParentHandle, WM_LBUTTONDOWN, wParam, MakeLong(x, y));
        end else
        SendMessage(VisDataThread.ParentHandle, WM_LBUTTONDOWN, wParam, lParam);
      end;
gruss

Geändert von EWeiss ( 9. Sep 2013 um 00:46 Uhr)
  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 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz