Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mouse Position unterschiedlich

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

ich habe ein kleines Problem!

Ich habe in Access mal eine Anwendung geschrieben in der ich die Mouseposition auslese.

Folgend der Code aus Access

Private Sub Bild_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)


    PosX = X

    PosY = Y


End Sub
So jetzt arbeite ich an der Version 2.0 und ich realisiere das ganze mit VB 2008. Dort habe ich folgenden Code

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click


        PosX = MousePosition.X 

        PosY= MousePosition.Y



    End Sub

So jetzt zum Problem in Access habe ich z.b. für X den Wert 1600 in meiner neunen Aplication habe ich bei X den Wert z.B. 78.

Warum ist in Access ein so hoher Wert und in VB ein so niedriger wert für die selbe Position der Mouse?

Ich brauche gleiche Werte da X und Y in eine Datenbank gespeichert sind! Und beim Abrufen der Werte X und Y die gleiche Position auf dem Bild erscheinen soll.

Danke für eure Hilfe

Also mir würden da zwei Möglichkeiten einfallen, wieso die Werte so unterschiedlich sein könnten.

Möglichkeit A:

Die Werte sind von der jeweils gegenüberliegenden Ecke ausgehend.

Möglichkeit B:

Es sind keine Pixelangaben, sondern wie z.B. bei der Consolenprogrammierung einfach Zeilen und Spaltenangaben.

Ne das kann nicht sein!

In der oberen linken Ecke sind bei beiden X und Y = 0. Egal ob Access oder VB

In der unteren rechten ecke des Bildes ist

in VB x=800 y = 600 (800*600 also genau die Größe des Bildes)

In Access x=11955 y = 8985

Also gibt es da wohl einen Unterschied! Aber was macht Acces bei MouseMove anders als MouseMove bei VB mit den Werten X und Y.

Bei VB ist es also genau die Pixelposition

Bei Access ???????

Von mir aus arbeite ich auch mit einem Umrechnungsfaktor aber welchen muss ich da nehmen.

Danke der Hinweis ist genial, jetzt habe ich zumindestens verstanden warum das so ist!

Aber da ich noch nicht so versiert bin in VB, kann mir jemand vielleicht helfen wie ich Twips in Pixel umrechnen kann?

Ich würde dann gerne meine ganzen DB Einträge von Twips in Pixel ändern.

Also wie schreibe ich es das das geht! Habe folgendes im www gefunden

' 

Umrechnung Twips nach Pixel

xPixel = xTwips / Screen.TwipsPerPixelX	' horizontal

yPixel = yTwips / Screen.TwipsPerPixelY	' vertikal


' Umrechnung Pixel nach Twips

xTwips = xPixel * Screen.TwipsPerPixelX	' horizontal

yTwips = yPixel * Screen.TwipsPerPixelY	' vertikal

Nur wenn ich im Code bei VB 2005 =
xTwips = xPixel * Screen.TwipsPerPixelX

eingebe, dann sagt mir VB das es TwipsPixelX ist kein Member von System.Widows.Forms.Screen

was mach ich falsche ?

Danke für deine Hilfe doch irgendwie bin ich zu blöd.

Wie binde ich das ein?

So habe ich es gemacht, nur ist dabei der Wert X = 0


Public Class Abfrage



Public Shared Function TwipsToPixelsX( _

    ByVal X As Double _

    ) As Double

    End Function





    Private Sub Fom_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


        MsgBox(TwipsToPixelsX(1200))


    End Sub



End Class

Die MsgBox wirf aber den Wert 0 aus ??????

Das liegt wohl daran, dass deine selbstgebastelte TwipsToPixelsX-Funktion aufgerufen wird. Und die tut nichts.

Die Funktion, die du aufrufen sollst, heißt mit vollem Namen Microsoft.VisualBasic.Compatibility.VB6.Support.TwipsToPixelsX. Um sie benutzen zu können, musst du deinem Projekt die Referenz Microsoft.VisualBasic.Compatibility hinzufügen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.