title image


Smiley Tja...


Hallo,



es ist ja keine Endlosschleife, die würde stören, sondern ein OnTime-Befehl. Der läuft anscheinend im Hintergrund mit (was offensichtlich Prozessorlast verringert) und startet dann nur sekündlich die sub.

Zwischen zwei Läufen der sub läuft also keine sub, nur die OnTime ist gesetzt.



Gegenüber einer Endlosschleife ist OnTime besser. Aber OnTime ist auch störend. Abgesehen davon, dass man den Button jedesmal neu anlegen muss...



Übrigens könnte die 2. sub nicht nur auf "", sondern auch auf Gleichheit prüfen, damit die Caption nur geändert wird, wenn sie neu ist.

strAlterWert ist überflüssig.

Ich habe noch paar kleinere Veränderungen gemacht.



Übrigens könnte das Ding auch die aktuelle Markierung nehmen - ohne Zwischenablage. Bringt aber wohl nicht. Was machst Du denn damit? Dient es nur der Anzeige? Oder hast Du auch eine Aktion mit dem Button verbunden?



Ferner könnte er (unabhängig von der Aktion des Buttons) ein Logbuch über alle Clipboards führen.



Wenn es nur der Anzeige dient: Übrigens ist ja bei der 12fachen (?) Clipboard-Symbolleiste von Word 2000 auch ein gelber Tooltip-Text, zu sehen, wenn man/frau die Maus darüber hält.



Gruß, Chrisir











Option Explicit



Dim ctlControl  As CommandBarButton



' Version 2



Sub StarteNeuenButton()



    Dim MyData      As DataObject

    Dim strText     As String

    

    

    strText = ""

    Set MyData = New DataObject

    

    MyData.GetFromClipboard

    strText = MyData.GetText(1)



    If strText = "" Then strText = "Clipboard"

    Set ctlControl = Application.CommandBars("Standard").Controls.Add

    ctlControl.Caption = Left(strText, 20)

    ctlControl.BeginGroup = True

    ctlControl.Style = msoButtonCaption

    StarteSchleifeTimer

        

End Sub



Sub StarteSchleifeTimer()

    

    Dim MyData      As DataObject

    Dim strText     As String

    

    

    Set MyData = New DataObject

    

    MyData.GetFromClipboard

    strText = MyData.GetText(1)

    

    If strText <> "" And _

       strText <> ctlControl.Caption Then

       

           ctlControl.Caption = Left(strText, 20)

           

    End If

    

    Application.OnTime When:=Now + TimeValue("00:00:01"), _

                       Name:="StarteSchleifeTimer"

                       

End Sub



Sub StoppeTimer()



    Application.OnTime When:=Now + TimeValue("00:00:01"), _

                       Name:="TueNichts"

                           

End Sub



Sub TueNichts()

    

    ' nichts



End Sub







Code eingefügt mit Syntaxhighlighter 2.4













geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: