Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Spielerei: animiertes Bild erzeugt Flackern

Begonnen von Doming, Februar 25, 2026, 10:13:04

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

ich habe als kleine Spielerei in einem Formular ein animiertes Auge, welches jede Minute zwinkert.
Dafür habe ich 10 Einzelbilder, die während der Animation nacheinander aufgerufen werden.
Public Aug As Byte, Schluss As Boolean, Warten As Boolean   'Augenstellung

Private Sub Form_Timer()
On Error GoTo Fehler
 Dim Auge As String, Ende As Byte

    If Schluss Then Ende = 1 Else Ende = 5
    Do
        Aug = Aug + 1
        If Aug > 10 Then Aug = 1
        Auge = Augenpfad & "Auge" & Format(Aug, "00") & ".jpg"
        Me.Auge.Picture = Auge
        DoEvents
    Loop Until Aug = Ende
    Form.TimerInterval = 60000
    Warten = False
Ende:
    Exit Sub
Fehler:
    Fehlerprot "frmFormular", "Timer", Err.Number, Err.Description, , True
    Resume Ende
End Sub

Private Sub AnimAuge(Auf As Boolean)
On Error GoTo Fehler
    Schluss = Auf
    Form.TimerInterval = 250
Ende:
    Exit Sub
Fehler:
    Fehlerprot "frmFormular", "AnimAuge", Err.Number, Err.Description, "Auf = " & Auf, True
    Resume Ende
End Sub

Das funktioniert soweit ganz gut, allerdings habe ich auf dem Formular noch ein anderes Bild und jedes Mal, wenn  ich ein neues Augenbild aufrufe, flackert es.

Kann man das zweite Bild irgendwie einfrieren, damit es Ruhe gibt?

Gruß
 Doming

Knobbi38

Hallo,

ich würde es mal mit einem animierten GIF versuchen.

Knobbi38

Doming

Hm, tja, war zwischenzeitig auch ein Gedanke, aber...

Das Formular soll Datensätze suchen. Wenn kein DS gefunden wurde, schließt sich das Auge (Ende = 1 Else Ende = 5). Ich brauche also dann mindestens 2 AniGifs, und dann bin ich ja wieder am Flackern, wenn auch vielleicht kürzer.

Knobbi38

Probiere es doch einfach mal aus und evtl. helfen ja zwei GIFs, welche du nur sichtbar schaltest.

M.M.:
letztendlich ist Access ein Datenbanktool und Animationen dergestalt braucht ein Anwender nicht.

Knobbi38



PhilS


@Doming , probier mal aus ob es einen Unterschied macht, wenn du vor dem Bildertausch die Painting-Eigenschaft des Formulars auf False setzt und danach wieder auf True.

Zitat von: Knobbi38 am Februar 25, 2026, 13:46:06letztendlich ist Access ein Datenbanktool und Animationen dergestalt braucht ein Anwender nicht.
Animationen und ähnliche Spielereien können sich durchaus auf Zufriedenheit und Wohlbefinden des Anwenders auswirken und Motivation und Produktivität steigern.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Doming

#5
Hallo,

@Knobbi: Ja sicherlich ist es ein sachlich/trockenes Datenbanktool, aber deswegen muss man es doch nicht so bierernst nehmen. Ab und an mal ein EasterEgg lockert die ganze Sache auf. Zudem ist für mich der Spaß am Programmieren dergestalt, dass ich mich darüber freue, einen ,,DasMussDochGehen"-Gedanken erfüllt zu sehen. Und bei der Überschrift habe ich den Leser doch schon auf sowas vorbereitet, oder?

So, ich habe es hinbekommen.
Me.Painting true/false, EchoOn true/false habe ich probiert, hatte kein Effekt. Animierte Gifs werden von Access nicht unterstützt bzw. man muss mit irgendwelchen Tools oder Codes arbeiten, das habe ich gleich verworfen.

Was tatsächlich geholfen hat, war das Abkoppeln vom Formular. Ich habe das Auge einfach als Unterformular eingebaut und den Code von oben einfach darauf umgemünzt. Jetzt blinzelt es ganz natürlich vor sich hin und übernimmt auch das Geschlossensein.

Sie dürfen in diesem Board keine Dateianhänge sehen.

Gruß
 Doming

Knobbi38

Hallo Doming,

interessante Lösung, möglicherweise wird durch die Zuweisung eines neuen Image intern eine Art "Repaint" für das Formular ausgelöst. Wenn das ein brauchbarer Workaround ist, warum nicht. Dieser Lösungsansatz könnte auch mal bei anderen Problemen hilfreich sein.

Gruß
Knobbi38