Neuigkeiten:

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

Mobiles Hauptmenü

Eindrückzeit der Befehlsschaltfläche einstellen

Begonnen von Rainer 1984, August 04, 2011, 03:58:59

⏪ vorheriges - nächstes ⏩

Rainer 1984

Hallo Accessianer,

wenn ich eine Befehlsschaltfläche drücke, wird sie für eine zu kurze Zeit eingedrückt dargestellt. Lässt sich diese Zeit irgendwie verändern, also verlängern?
Ich benutze folgenden Code:Private Sub Neuer_Lief_Click()
    Me!Rechteck621.SpecialEffect = 2
    DoEvents
    Me!Rechteck621.SpecialEffect = 1
End Sub


Für eine Hilfe schon mal vielen Dank im Voraus!

Viele Grüße

Rainer

DF6GL

Hallo,

"wenn ich eine Befehlsschaltfläche drücke, wird sie für eine zu kurze Zeit eingedrückt dargestellt."


die Schaltfläche wird solange "eingedrückt", wie die Maustaste gedrückt wird....(und der Mauszeiger sich über der Schalfläche befindet)


Rainer 1984

Hallo Franz,

wenn ich auf die Schaltfläche drücke, wird diese noch nicht eingedrückt dargestellt.
Die Schaltfläche erfährt erst dann eine Eindrückung, wenn ich die Maustaste wieder loslasse.
Die Eindrückzeit beträgt, unabhängig von der "Mausdruckzeit", gefühlte 0,1 Sekunden. Das ist mir zu kurz.

Ich habe mal Anfang des Jahres zu diesem Thema rein zufällig einen Code, wie den obigen, im Netz gesehen, bei dem zusätzlich die Möglichkeit vorhanden war, irgendwo unterhalb der Zeile "Me!Rechteck621.SpecialEffect = 2" in einer zusätzlichen Zeile eine Zeit in Sekunden einzugeben (z.B. 0,5).
Da ich zu damaliger Zeit den o.g. Code bereits im Einsatz hatte, habe ich mich nicht weiter darum gekümmert. Im Nachhinein bereue ich das.
Konnte diesen "komfortablen" Code jedoch nicht wieder finden.

Viele Grüße

Rainer

DF6GL

Hallo Rainer,

sprichst Du wirklich von einer Schaltfläche?  (Name bei Dir: "Neuer_Lief")

oder meinst Du das Rechteck-Steuerelement (Name: "Rechteck621")  ?


Um welche Access-Version handelt es sich?


Vermutlich meinst Du, zwischen den beiden Codezeilen, die die Eigenschaft "SpecialEffect" des Steuerelementes  umsetzen, eine Wartezeit einzufügen.


Eine Wartezeit (Programmunterbrechung) kann z. B. mit einer solchen Funktion erzeugt werden:


http://dbwiki.net/wiki/VBA_Tipp:_Programmausf%C3%BChrung_f%C3%BCr_einen_Zeitraum_unterbrechen

Rainer 1984

Hallo Franz,

zunächst vielen Dank für Deine Hilfe mit dem Link.

Zitatsprichst Du wirklich von einer Schaltfläche?  (Name bei Dir: "Neuer_Lief")
oder meinst Du das Rechteck-Steuerelement (Name: "Rechteck621")  ?
Es ist die Kombination einer transparenten Befehlsschaltfläche und eines animierten Rechtecks.

Zitat
Um welche Access-Version handelt es sich?
Es handelt sich um Access 2010. Und das ist das Problem. Meines Wissens lässt sich mit dieser Version keine "typische" Befehlsschaltfläche mehr erzeugen, wie ich das von älteren Versionen kenne. Nur "rundgelutschte" Schaltflächen. Deshalb behelfe ich mir mit dem Trick dieser Kombination und des Animations-Codes.

ZitatVermutlich meinst Du, zwischen den beiden Codezeilen, die die Eigenschaft "SpecialEffect" des Steuerelementes  umsetzen, eine Wartezeit einzufügen.
Ja, genau.


Übrigens habe ich in der Zwischenzeit eine wesentlich bessere Variante gefunden, mit denen man eine Befehlsschaltfläche absolut real und in "Echtzeit" simulieren kann - ohne das "kosmetische" Problem, dass sich diese erst nach dem Loslassen der Maustaste eindrückt. Hier die Codes:

Private Sub Befehl3_mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Me!Rechteck4.SpecialEffect = 2
End Sub

Private Sub Befehl3_mouseup(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Me!Rechteck4.SpecialEffect = 1
End Sub

Ich habe mal dem Anhang eine Access-Datei mit zwei Beispielen beigefügt.
Beispiel 1: alte Variante - Eindrückung für sehr kurze Zeit erst nach Loslassen der Maustaste (entspr. Code ganz oben im 1. Beitrag).
Beispiel 2: neue Variante - Eindrückung sofort und so lange man mit der Maus drauf bleibt.

Viele Grüße

Rainer

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

Sicherlich ist das Klick-Ereignis nicht geeignet für Dein (jetzt eher erkennbares) Vorhaben...


Stell aber mal einfach die Eigenschaften einer Schaltfläche "Design verwenden" auf nein und "Rahmenart" auf transparent...

Rainer 1984

Hallo Franz,

ZitatSicherlich ist das Klick-Ereignis nicht geeignet für Dein (jetzt eher erkennbares) Vorhaben...
Wie bereits in meinem letzten Beitrag geschrieben, habe ich eine angenehme Lösung (siehe Beispiel 2) gefunden.

ZitatStell aber mal einfach die Eigenschaften einer Schaltfläche "Design verwenden" auf nein
"Design verwenden" steht bereits auf "Nein".

Zitatund "Rahmenart" auf transparent...
Einen optischen Unterschied zwischen "Durchgezogen" (alt) und "Transparent" (neu) kann ich nicht feststellen.
Hinweis: "Hintergrundart" steht auf "Transparent".

Viele Grüße

Rainer


DF6GL

Hallo Rainer,


ist ja gut, wenn es geht...

Will Dir ja nur eine Alternative zeigen, die Du nicht benutzen musst.

[Anhang gelöscht durch Administrator]

Rainer 1984

#8
Hallo Franz,

kein Problem - bin offen für Alternativen.
Vielen Dank für Deine Hilfe.  :)

Viele Grüße

Rainer