Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am April 18, 2016, 14:11:15

Titel: Scrollbar nur bei "Mouse over"
Beitrag von: datekk am April 18, 2016, 14:11:15
Hi,
ich möchte gern in einem Formular (UFO) die Scrollbar vertikal nur anzeigen, wenn der Benutzer die Maus über das Formular führt. Ist die Maus nicht über dem Formular, soll keine Scrollbar sichtbar sein.

Ist dies möglich?
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: markusxy am April 19, 2016, 14:33:57
das hört sich sehr nach spielerei an.
Möglich sollte es sein.
Wie man die Scrollbar per Code aktiviert wird ja nicht das Problem darstellen.
Die Frage ist wahrscheinlich wie man feststellt, ob die Maus über dem Objekt ist.
Ich könnte mir folgendes vorstellen:
MouseMove auf alle betroffenen Elemente (Unterformular, Steuerelemente usw.) um die Scrollbar zu aktivieren, sobald die Mouse sich darüber befindet.
Sobald die Scrollbar aktiv ist würde ich alle MoveEreignisse deaktiveren und mittels Timer prüfen, ob die Maus das Unterformular verlassen hat, wenn ja, Scrollbar wieder deaktivieren und MoveEvents wieder aktivieren.
Ohne Programmierkenntnisse aber etwas schwer umzusetzen, ansonsten eine Kleinigkeit.
Viel Spass dabei.
Was gibt es denn für einen Grund für dein Ansinnen?

Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: datekk am April 21, 2016, 11:54:31
 :D Hört sich gut an. An diese Vorgehensweise hatte ich auch schon gedacht. Aber wie setzt man das um? Es gibt ja das Ereignis "bei Mausbewegung" ggf. ließe sich dieses nutzen. Klar, es ist Spielerei, aber sowas gehört doch auch dazu, oder  ;)

Gesehen habe ich das bei Outlook. Wenn ich da über die Ordneransicht gehe, wird die Scrollbar eingeblendet. Das fand ich einfach nur schick.

LG
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: Beaker s.a. am April 21, 2016, 12:27:45
Hallo datekk,
Schau Mal ob dieses hilft:
http://www.ms-office-forum.net/forum/showthread.php?t=317621&highlight=mausposition (http://www.ms-office-forum.net/forum/showthread.php?t=317621&highlight=mausposition)
Man kann die Position der Maus soweit ich weiss/denke gelesen zu haben
auch per API auslesen. Da kann ich dir aber leider nicht weiterhelfen :(
gruss ekkehard
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: datekk am April 21, 2016, 12:32:07
Ja das kenne ich. Wie verknüpfe ich das aber mit der Scrollbar sinnvoll?
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: Beaker s.a. am April 21, 2016, 12:39:17
Hallo,
Hm, verstehe ich nicht.
Du vergleichst die Maus-Position mit der Formular-Position und
greifst auf die .ScrollBar-Eigenschaft zu.
Halte dieses allerdings für eine der weniger sinnvollen Spielereien.
gruss ekkehard
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: markusxy am April 21, 2016, 13:47:31
Zitat von: datekk am April 21, 2016, 11:54:31
Es gibt ja das Ereignis "bei Mausbewegung" ggf. ließe sich dieses nutzen.

Ja mit dem MouseMove Ereignis könntest du das Einblenden der Leiste steuern.
Könntest du das umsetzen?
Titel: Re: Scrollbar nur bei "Mouse over"
Beitrag von: markusxy am April 21, 2016, 13:53:14
Zitat von: Beaker s.a. am April 21, 2016, 12:27:45
Hallo datekk,
Schau Mal ob dieses hilft:
http://www.ms-office-forum.net/forum/showthread.php?t=317621&highlight=mausposition (http://www.ms-office-forum.net/forum/showthread.php?t=317621&highlight=mausposition)
Man kann die Position der Maus soweit ich weiss/denke gelesen zu haben
auch per API auslesen. Da kann ich dir aber leider nicht weiterhelfen :(
gruss ekkehard

Die Maus Position kann man mit der API Funktion GetCursorPos
die Fenster Pos mit API Func. GetWindowRect herausfinden.
Im Web findet man ausreichend Beispiele, oder gleich bei Microsoft
https://msdn.microsoft.com/de-de/library/windows/desktop/ff818516(v=vs.85).aspx (https://msdn.microsoft.com/de-de/library/windows/desktop/ff818516(v=vs.85).aspx)
Infos aus erster Hand, wenn man ohne Beispiele weiterkommt.