none
MousePointer bei Mousedown setzen -> wird nicht angezeigt

    Frage

  • Hi,

    ähnliches verhalten wie bei: http://social.msdn.microsoft.com/Forums/de-DE/accessde/thread/deb4f090-6a89-42a8-889e-6d6bd24ba0b3/

    ich versuche beim Event MouseDown den

    Screen.MousePointer = 7 zu setzen.

    Funktioniert auch in Access 2003, aber nicht in Access 2010.

    Durch ein wenig debuggen fand ich bisher heraus, dass er diesen wirklich setzt, nachdem ich im MouseUp das Rücksetzen auf Screen.MousePointer = 0 auskommentiert habe.

    Access scheint, während ich die Maustaste gedrückt halte keine Änderung am Mauszeiger selbst zuzulassen, erst nach dem loslassen der Maustasten wird aktualisiert.

    Stimmt das so? Wenn ja, gibt es eine andere Möglichkeit das aktualiseren zu erzwingen? Win-API?

    Grüße

    Montag, 16. April 2012 13:36

Antworten

Alle Antworten

  • WinApi geht, allerdings sollte es ein DoEvents auch tun.
    Montag, 16. April 2012 13:59
    Moderator
  • WinApi geht, allerdings sollte es ein DoEvents auch tun.

    Leider reicht ein "DoEvents" nicht aus.
    Dienstag, 17. April 2012 13:04
  • Hallo,

    RealStein wrote:

    ich versuche beim Event MouseDown den

    Screen.MousePointer = 7 zu setzen.
    Funktioniert auch in Access 2003, aber nicht in Access 2010.

    Bei mir funktioniert das in A2010, gerade getestet:

    Private Sub Text0_MouseDown(Button As Integer, Shift As Integer, X As
    Single, Y As Single)
     Screen.MousePointer = 7
    End Sub
    
    Private Sub Text0_MouseUp(Button As Integer, Shift As Integer, X As Single,
    Y As Single)
     Screen.MousePointer = 0
    End Sub

    Welche Accessversion hast du? Bei mir: 14.0.6112.5000 (32-bit) auf W7/64

    Hast du noch weiteren Code in den beiden Events?

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Dienstag, 17. April 2012 14:21
    Moderator
  • Die gleiche Office 2010 Professinal SP1  also die   14.0.6112.5000 32bit auf 64bit Win7

    Es liegt aber nicht an der Version ;)

    Ich musste gerade feststellen, dass es auf einer Textbox funktioniert.

    Ich benutze aber ein "Rechteck" als sozusagen selbstgebaute Splitterkomponente für die inhaltliche Trennung von Formularen.

    Damit funktioniert es nicht unter Access 2010.

    Mittwoch, 18. April 2012 09:18
  • Hallo,

    RealStein wrote:

    Ich musste gerade feststellen, dass es auf einer Textbox funktioniert.

    Ich benutze aber ein "Rechteck" als sozusagen selbstgebaute
    Splitterkomponente für die inhaltliche Trennung von Formularen.

    Damit funktioniert es nicht unter Access 2010.

    Das ist richtig, unter 2010 geht das nur in den Steuerelementen
    Text-/Combo-/Listbox und selbst da nur, wenn sie den Fokus haben.

    Einziger Workaround mit Bordmitteln, wenn auch wenig sinnvoll, waere, wenn
    man statt des Rechtecks eine Textbox nutzt, Hintergrund=Transparent,
    Gesperrt=Ja. Nachteil: wenn sie den Fokus hat, sieht man den Cursor
    blinken. Wenn man Aktiv=Nein stellt, kann sie den Fokus nicht mehr bekommen
    und somit funktioniert die Cursorumstellung nicht mehr.

    Also wird dir nur der Weg ueber API bleiben.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 19. April 2012 09:16
    Moderator
  • Hallo,

    RealStein wrote:

    Ich musste gerade feststellen, dass es auf einer Textbox funktioniert.

    Ich benutze aber ein "Rechteck" als sozusagen selbstgebaute
    Splitterkomponente für die inhaltliche Trennung von Formularen.

    Damit funktioniert es nicht unter Access 2010.

    Das ist richtig, unter 2010 geht das nur in den Steuerelementen
    Text-/Combo-/Listbox und selbst da nur, wenn sie den Fokus haben.

    Einziger Workaround mit Bordmitteln, wenn auch wenig sinnvoll, waere, wenn
    man statt des Rechtecks eine Textbox nutzt, Hintergrund=Transparent,
    Gesperrt=Ja. Nachteil: wenn sie den Fokus hat, sieht man den Cursor
    blinken. Wenn man Aktiv=Nein stellt, kann sie den Fokus nicht mehr bekommen
    und somit funktioniert die Cursorumstellung nicht mehr.

    Also wird dir nur der Weg ueber API bleiben.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Leider musste ich feststellen, dass auch die WIN-API hier nicht funktoniert, da scheinbar Access den Mauszeiger nicht aktualisieren willst, solange man klickt.

    Oder muss ich dem Access auch noch sagen, dass es doch bitte sein Fenster? neu zeichnen soll, oder welche Funktion muss ich aufrufen, damit die Änderung des Mauszeigers wirksam wird?

    Donnerstag, 19. April 2012 09:46
  • Hallo!

    Bei mir funktioniert die API-Variante ohne Probleme.
    Beispiel: MouseCursor.accdb

    Anm.: Das Zurückstellen des Cursors bei MouseUp war übrigens nicht erforderlich.

    mfg
    Josef


    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Virtueller Access-Stammtisch


    • Bearbeitet Josef Pötzl Donnerstag, 19. April 2012 13:51
    • Als Antwort markiert RealStein Montag, 23. April 2012 13:02
    Donnerstag, 19. April 2012 13:37
  • Hallo,

    RealStein wrote:


    Leider musste ich feststellen, dass auch die WIN-API hier nicht
    funktoniert, da scheinbar Access den Mauszeiger nicht aktualisieren
    willst, solange man klickt.

    Siehe Josefs Antwort. Wenn du sein Beispiel nutzt, lautet der Aufruf fuer
    dich:

    MouseCursor IDC_MouseCursor.IDC_SIZENS

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Freitag, 20. April 2012 20:44
    Moderator
  • Hi,

    die Variante von "Josef" funktioniert.

    vielen Dank ;)

    Montag, 23. April 2012 13:01
  • Hallo!

    Interessehalber (Wegen "Leider musste ich feststellen, dass auch die WIN-API hier nicht funktoniert"):
    Welche API-Variante hat nicht funktioniert?

    Anm.: in meinem Beispiel wird der Code von http://www.mvps.org/access/api/api0044.htm (mit API-Funktionen LoadCursorBynum und SetCursor) verwendet.

    mfg
    Josef



    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Virtueller Access-Stammtisch

    Montag, 23. April 2012 14:07
  • Ich hatte es mit http://www.vbarchiv.net/api/api_loadcursor.html versucht.
    Montag, 23. April 2012 14:56