HERBERS Excel-Forum - die Dialoge

Thema: Grafik wechseln

Home
Beim Überstreichen einer Grafik mit der Maus wird die Grafik gewechselt. Grafik wechseln
  • Prozedur: Image1_MouseMove
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Unterprozedur zum Grafikwechsel aufrufen
  • Ablaufbeschreibung:
    • Variable deklarieren
    • Unterprozeudur aufrufen
  • Code:

    
    Dim bln As Boolean
    
    Private Sub Image1_MouseMove( _
       ByVal Button As Integer, _
       ByVal Shift As Integer, _
       ByVal X As Single, _
       ByVal Y As Single)
       Call ChangeImage(Image1, X, Y)
    End Sub
    
  • Prozedur: ChangeImage
  • Art: Sub
  • Modul: Klassenmodul der UserForm
  • Zweck: Unterprozedur zum Grafikwechsel
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Grafikpfad an eine String-Variable übergeben
    • Wenn es sich bei der aktuellen um die zweite Grafik handelt
    • Den Namen des 1. Bildes der 1. Grafik an eine String-Variable übergeben
    • Den Namen des 2. Bildes der 1. Grafik an eine String-Variable übergeben
    • Sonst...
    • Den Namen des 1. Bildes der 2. Grafik an eine String-Variable übergeben
    • Den Namen des 2. Bildes der 2. Grafik an eine String-Variable übergeben
    • Wenn die Boolsche Variable den Wert False hat...
    • Wenn sich der Cursor auf der Grafik befindet...
    • 2. Bild der jeweiligen Grafik öffnen
    • Sonst...
    • 1. Bild der jeweiligen Grafik öffnen
    • Booolsche Variabel auf False setzen
    • UserForm neu zeichnen
  • Code:

    
    Private Sub ChangeImage(img As Control, X As Single, Y As Single)
       Dim sPath As String, sPctA As String, sPctB As String
       sPath = ThisWorkbook.Path & "\"
       If img.Name = "Image2" Then
          sPctA = sPath & "prev_button.gif"
          sPctB = sPath & "prev_button_on.gif"
       Else
          sPctA = sPath & "next_button.gif"
          sPctB = sPath & "next_button_on.gif"
       End If
       If bln = False Then
          If X > 2 And Y > 2 And X < 16 And Y < 16 Then
             img.Picture = LoadPicture(sPctA)
          Else
             img.Picture = LoadPicture(sPctB)
             bln = False
          End If
          Me.Repaint
       End If
    End Sub
    
    • Prozedur: Image1_Click
    • Art: Ereignis
    • Modul: Klassenmodul der UserForm
    • Zweck: Zählerlabel hochzählen
    • Ablaufbeschreibung:
      • Boolsche Variable auf False setzen
      • 2. Bild der 1. Grafik laden
      • Aufschrift des Zählerlabels um eins erhöhen
      • UserForm neu zeichnen
    • Code:

      
      Private Sub Image1_Click()
         bln = False
         Image1.Picture = LoadPicture(ThisWorkbook.Path & "\prev_button_on.gif")
         Label1.Caption = CLng(Label1.Caption) + 1
         Me.Repaint
      End Sub