Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Scrollbar nur bei "Mouse over"

Begonnen von datekk, April 18, 2016, 14:11:15

⏪ vorheriges - nächstes ⏩

datekk

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?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

markusxy

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?


datekk

 :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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Beaker s.a.

Hallo datekk,
Schau Mal ob dieses hilft:
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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

datekk

Ja das kenne ich. Wie verknüpfe ich das aber mit der Scrollbar sinnvoll?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

markusxy

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?

markusxy

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
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
Infos aus erster Hand, wenn man ohne Beispiele weiterkommt.