Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie kann bei Mausbewegung das aktive Control hervor heben?
Voraussetzungen:
Das Bsp ist ab A97 lauffähig.
Es sind 2 Funktionen erforderlich. Eine um das Control hervorzuheben und das andere um beim Verlassen
den Urzustand wieder herzustellen.
Am Anfang müssen im Modulkopf einige Variablen deklariert werden.
Dim mstPrevControl As String Dim iFWeight As Long Dim bFUnder As Boolean Dim bItalic As Boolean Dim lngFColor As Long Dim lngBColor As Long Const cNormal = 400 Const cBold = 700
1. Ändern:
Private Function tk_SetFontProperty(sControlName As String, _ Optional FontWProp As Long = cNormal, _ Optional FontUProp As Boolean = False, _ Optional FontIProp As Boolean = False, _ Optional FontColor As Long = 0, _ Optional ControlBackColor As Long = 16777215) '******************************************* 'Name: tk_SetFontProperty(Function) 'Purpose: Ändert die Eigenschaften des Controls beim überfahren mit der Mouse 'Author: Thomas Keßler 'Date: April 28, 2004, 13:00:00 'Inputs: sControlName = Name des Controls ' FontWProp = Schriftstärke (Optional, Standard=Normal) ' FontUProp = Text unterstrichen? (Optional, Standard = False) ' FontIProp = Text kursiv? (Optional, Standard = False) ' FontColor = Textfarbe (Optional, Standard = 0 Schwarz) ' ControlBackColor = Hintergrundfarbe? ' (Optional, Standard = 16777215 Weiß) 'Output: 'Example: tk_SetFontProperty "Text1",cBold, , True, 255, 65535 ' Würde bei der Mausbewegung den Inhalt des Textfeldes "Text1" Fett, ' nicht unterstrichen, ' kursiv, Textfarbe Rot und Hintergrundfarbe Gelb darstellen '******************************************* On Error Resume Next mstPrevControl = sControlName With Me(sControlName) .FontWeight = FontWProp .FontItalic = FontIProp .FontUnderline = FontUProp .ForeColor = FontColor .BackColor = ControlBackColor End With End Function
Syntax und Argumente:
FontWProp = Schriftstärke, Optional Standardwert = Normal
FontUProp = Text unterstrichen, Optional Standardwert = nicht unterstrichen
FontIProp = Text kursiv? (Optional, Standard = False)
FontColor = Textfarbe (Optional, Standard = 0 Schwarz)
ControlBackColor = Hintergrundfarbe? (Optional, Standard = 16777215 Weiß)
Aufruf im Ereignis "Bei Mausbewegung" des jeweiligen Controls: z.B.
Private Sub Text0_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) [OnMouseMove] = tk_SetFontProperty("Text0", cBold, True, False, _ 255, 65535) End Sub
würde das Textfeld "Text0", beim überfahren mit der Maus Fett, Unterstrichen, nicht kursiv, Textfarbe Rot und Feldhintergrund Gelb darstellen.
1. Zurücksetzen:
Um das Ganze beim Verlassen wieder rückgängig zu machen ist eine zweite Funktion erforderlich.
Diese wird im Ereignis "Bei Mausbewegung" des jeweiligen Formularbereiches aufgerufen.
Private Function tk_fRemoveFont(Optional FontWProp As Long = cNormal, _ Optional FontUProp As Boolean = False, _ Optional FontIProp As Boolean = False, _ Optional FontColor As Long = 0, _ Optional ControlBackColor As Long = 16777215) '******************************************* 'Name: tk_fRemoveFont(Function) 'Purpose: Setzt die Änderungen die Eigenschaften des Controls beim überfahren ' mit der Mouse zurück 'Author: Thomas Keßler 'Date: April 28, 2004, 13:00:00 'Inputs: FontWProp = Schriftstärke (Optional, Standard=Normal) ' FontUProp = Text unterstrichen? (Optional, Standard = False) ' FontIProp = Text kursiv? (Optional, Standard = False) ' FontColor = Textfarbe (Optional, Standard = 0 Schwarz) ' ControlBackColor = Hintergrundfarbe? ' (Optional, Standard = 16777215 Weiß) 'Output: 'Example: tk_fRemoveFont() ' Würde das aktuelle Textfeld nach Verlassen der Mouse wieder auf ' Schriftstärke Normal ' unterstrichen=Nein, kursiv=Nein, Textfarbe Schwarz und Hintergrundfarbe ' Weiß zurücksetzen '******************************************* On Error Resume Next With Me(mstPrevControl) .FontWeight = FontWProp .ForeColor = FontColor .FontItalic = FontIProp .FontUnderline = FontUProp .BackColor = ControlBackColor End With End Function
Der Syntax und die Argumente sind denen der ersten Funktion ähnlich:
FontWProp = Schriftstärke, Optional Standardwert = Normal
FontUProp = Text unterstrichen, Optional Standardwert = nicht unterstrichen
FontIProp = Text kursiv? (Optional, Standard = False)
FontColor = Textfarbe (Optional, Standard = 0 Schwarz)
ControlBackColor = Hintergrundfarbe? (Optional, Standard = 16777215 Weiß)
Da alle Werte optional sind ist in der Regel keine Angabe erforderlich
Aufruf z.B.: im Detailbereich des Forms:
PPrivate Sub Detailbereich_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) [OnMouseMove] = tk_fRemoveFont() End Sub
Würde die Werte wieder auf die Standardwerte zurücksetzen.
Für 32Bit und 64Bit Office Versionen
Aktuelles Formularfeld bei "MouseMove" -Ereignis, mit variabelen Format hervorheben
ab A97
Die Zip-Datei enthält ein Version für A97 und eine ab A00
Ähnliche Artikel
Weiterlesen...