Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Slider / Scrollbars ohne ActiveX mit Access Bordmitteln
zurück: Verketten von Feldinhalten - GetFields() weiter: Formularaufruf mit Parameterübergabe und Datenfilterung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
19. März 2013, 00:01
Rufname:

Slider / Scrollbars ohne ActiveX mit Access Bordmitteln - Slider / Scrollbars ohne ActiveX mit Access Bordmitteln

Nach oben
       Version: (keine Angabe möglich)

Hallo zusammen,

eine Scrollbar ist aus kaum einer Anwendung mehr wegzudenken - zum Glück werden diese weitestgehend von Access selbst verwaltet, so daß man sich kaum Gedanken darüber machen muß (außer, ob sie ein- oder ausgeschaltet sind).

Steuern kann man sie aber leider nicht (es sei denn mit fiesen Tricks wie Windows Subclassing, aber das ist eher was für Freunde des Absturzes...).

Es gibt Scrollbars und auch Slider Controls als ActiveX-Elemente, allerdings auch schon reichlich angestaubt und mit ihren eigenen Macken. Darum habe ich hier mal eine neue Klasse zusammengebastelt, mit der man ein paar Standardcontrols von Access zu einer Scroll- oder Sliderbar zusammenbauen kann.

Das Prinzip ist ganz einfach: Ein Slider ist eigentlich nur eine Scrollbar ohne Pfeile an den Enden, und beide bestehen aus ein paar simplen Elementen: Dem Rahmen, der beweglichen Box und bei der Scrollbar noch den Pfeilen an den Enden. Dazu kommt bei Bedarf noch ein Tooltip zur Anzeige des Wertes.

Alles Elemente, die in Access vorkommen, einfach ein wenig zweckentfremdet mit Hilfe ihrer Events. Mit der Sliderklasse kann man nun aus unterschiedlichen Controls einen Slider beinahe beliebig zusammenbasteln, das Design der einzelnen Controls kann wie immer im Formulareditor entworfen werden. Die Klasse übernimmt lediglich das Zusammenspiel und stellt dazu auch noch ein paar eigene Events zur Verfügung.

Im Gegensatz zum Original muß dabei der Sliderbutton weder in den Rahmen passen noch genau darüberliegen. Er sollte lediglich kleiner als der Rahmen sein. Der Button wird anhand der Min- und Max-Values, die man mit dem Slider einstellen möchte, sowie optionalen Margin-Werten (der Rand, bis zu dem innerhalb des Sliderframes hin- und hergescrollt werden soll) passend positioniert und die Werte entsprechend umgerechnet. Es können negative und positive Min- und Max-Werte verwendet werden. Auch sonst ist die Klasse reichhaltig konfigurierbar, die einzelnen Eigenschaften sind im Code dokumentiert.

Neben horizontalen und vertikalen Slidern kann man auch 2D-Slider verwenden, mit dem man gleichzeitig 2 Werte einstellen kann. Dieser eignet sich z.B., um Punkte auf einer Karte anzuvisieren o.ä.

Das Formular "frmSliderExamples" ist für den Einstieg: Hier findet man weitgehend unformatierte Controls, die den Umgang mit dem Slider demonstrieren.

Grafisch schöner, aber aufwendiger herzustellen sind die Beispiele in "frmGraphicSlider". Hier wurden Image-Controls verwendet, um die Sliderframes bzw. -buttons darzustellen. Da man als Sliderframe und - button jeweils auch ein Image-Control verwenden kann, hat man hier einen breiten Spielraum für grafische Gestaltung. Man kann diese aber auch mit normalen Controls mischen, wie im waagerechten Slider auf diesem Formular, bei dem der Sliderbutton ein Button-Control ist, der Hintergrund aber ein Image-Control. Die Pfeile am Ende haben jeweils einen transparenten Button "übergestülpt", so daß sie funktionieren, die Pfeile sind aber Bestandteil der Hintergrundgrafik (die transparenten Buttons werden aber wohl erst ab A2007 funktionieren, aber es gibt ja reichlich alternative Methoden mit der Sliderklasse).

Als kleiner Leckerbissen gibt es obendrein noch "frmEqualizer". Hier werden gleich 11 vertikale Slider angezeigt, wobei der Master-Slider die anderen 10 gemeinsam steuert. Dazu wird noch eine Equalizer-Grafik angezeigt, die einfach aus 49 Rectangle-Controls besteht, die je nach Wert der Einstellung ein- und ausgeblendet werden (nein, die habe ich nicht alle manuell designt, dazu habe ich einen kleinen Code geschrieben, der in "modCreateEqualizerControls" steht). Die Farbwerte stammen aus einem kleinen Excel-Tool, das die Skala berechnet. Hier ein Link dazu:

Den Regenbogen berechnen

Habe lediglich die Berechnung etwas angepaßt, um die Skala etwas bunter zu bekommen.

Das Equalizer-Formular ist auch an eine passende Tabelle gebunden, mit der man die einzelnen Einstellungen des Equalizers speichern kann. Der Name kann im Titelbereich eingegeben werden, mit der Kombobox kann man zu dem passenden Datensatz springen.

Um einen unregelmäßigen Button wie im Equalizer-Beispiel "durchsichtig" (an den Ecken) erscheinen zu lassen, muß man nur den Button in einem Grafikprogramm auf den Hintergrund legen (der wiederum gleichmäßig gefüllt sein muß) und dann den Button rechteckig mit dem Hintergrund ausschneiden. Über die Slider-Margins kann man einstellen, wie weit der Sliderbutton bis zum Rand verschoben werden kann und so sind auch die runden Enden der Sliderframes kein Problem.

Über die Events der Sliderklasse kann man die Wertänderungen dann abfangen und passend verarbeiten.
Das Equalizer-Formular hat nochmal eine eigene Klasse "clsEqualizer", die aber nicht zum Slider gehört. Sie dient nur dazu, alle 10 Werteslider des Equalizers gemeinsam zu verwalten, um nicht für jeden Slider eigene Prozeduren im Formular unterbringen zu müssen.

Viel Spaß beim Sliden

Christian



CCSlider.zip
 Beschreibung:
CCSlider-Klasse mit Demoformularen in den Formaten A2000-A2007. Geschrieben und getestet mit A2007.

Download
 Dateiname:  CCSlider.zip
 Dateigröße:  1.29 MB
 Heruntergeladen:  131 mal

Willi Wipp
Moderator


Verfasst am:
19. März 2013, 07:12
Rufname:
Wohnort: Raum Wiesbaden


AW: Slider / Scrollbars ohne ActiveX mit Access Bordmitteln - AW: Slider / Scrollbars ohne ActiveX mit Access Bordmitteln

Nach oben
       Version: (keine Angabe möglich)

Hi Folks,

um das Thema uebersichtlich zu halten, Nachfragen bitte im folgenden Thema stellen
Slider / Scrollbars ohne ActiveX {Nachgefragt}

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: ActiveX Elemente - ListView, ImageList füllen mit RecordSet 0 hagenbuch 91 25. Nov 2013, 06:09
hagenbuch ActiveX Elemente - ListView, ImageList füllen mit  RecordSet
Keine neuen Beiträge Access Programmierung / VBA: ActiveX Steuerelemente nach Neustart weg 1 Bene1501 110 09. Okt 2013, 14:09
Bene1501 ActiveX Steuerelemente nach Neustart weg
Keine neuen Beiträge Access Formulare: Access 2010 - ActiveX - MSCOMCTL fehlt 14 Gast111 430 12. März 2013, 07:41
Willi Wipp Access 2010 - ActiveX - MSCOMCTL fehlt
Keine neuen Beiträge Access Tipps & Tricks: MiniChart mit Access Bordmitteln 0 Bitsqueezer 508 26. Jan 2013, 22:18
Bitsqueezer MiniChart mit Access Bordmitteln
Keine neuen Beiträge Access Tipps & Tricks: TreeView ohne ActiveX mit Access Bordmitteln 0 Bitsqueezer 2605 11. Jan 2013, 00:35
Bitsqueezer TreeView ohne ActiveX mit Access Bordmitteln
Keine neuen Beiträge Access Formulare: ActiveX AroRd32.exe Prozess beenden - Speicher freigeben 0 JoFi 213 15. Nov 2012, 02:25
JoFi ActiveX AroRd32.exe Prozess beenden - Speicher freigeben
Keine neuen Beiträge Access Programmierung / VBA: Video mit Media Player als ActiveX öffn.und zu Sek. springen 1 dw_131 492 28. Feb 2011, 16:40
Gast Video mit Media Player als ActiveX öffn.und zu Sek. springen
Keine neuen Beiträge Access Formulare: Adobe Acrobat Control for ActiveX 2 Thom 4184 05. Jul 2010, 22:37
hoto67 Adobe Acrobat Control for ActiveX
Keine neuen Beiträge Access Programmierung / VBA: Scrollbars/Bildlaufleisten in TextBox immer sichtbar lassen 2 vbaler_test 1919 10. März 2010, 13:52
vbaler_test Scrollbars/Bildlaufleisten in TextBox immer sichtbar lassen
Keine neuen Beiträge Access Formulare: Mozilla ActiveX Controll 1 Reip 1091 06. Aug 2009, 13:51
Reip Mozilla ActiveX Controll
Keine neuen Beiträge Access Programmierung / VBA: :?: Anfängerproblem -> ActiveX 5 Gast 507 29. Sep 2008, 17:17
Willi Wipp :?:  Anfängerproblem -> ActiveX
Keine neuen Beiträge Access Programmierung / VBA: Fehlermeldung 'ActiveX component can't create object' 9 diwi 9765 19. Feb 2008, 20:11
steffen0815 Fehlermeldung 'ActiveX component can't create object'
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project