Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

wie Lauftext in Textbox bewegen

201 views
Skip to first unread message

Hans Alborg

unread,
Feb 8, 2012, 3:38:57 PM2/8/12
to
Hallo,

Ich habe per Userform einen Stundenrechner gebaut. In eine der Textboxen
wird Stück für Stück die Aufgabe dargestellt.
Wenn diese mehrteilig wird (124:25+45:20+12:45+15:05...), ist sie länger als
die Textbox und wird z.T. verdeckt. Eine mehrzeilige Darstellung sieht b..d
aus.

Was ich möchte: wenn ich die Maus über die Textbox bringe soll der Text hin-
und her laufen (kein Scrollbalken). Halt in moderater Geschwindigkeit von
links nach rechts, umgekehrt und immer so weiter bis ich die Maus wegziehe.
Dann soll der Text noch bis zum "Anschlag" nach rechts laufen und
stehenbleiben.

Gibt es was Einfaches? Leider hat eine Textbox wohl so eine Eigenschaft
nicht.
Vielleicht kann man was machen wenn man den Focus wandern läßt?

Alle Zeichen in der Textbox sind Strings, so daß auch eine VBA- Schleife
ginge (String in Zeichen zerlegen).
Falls hier keiner eine bessere Idee hat probiere ich sowas (Länge des
Strings in der Textbox muß ja auch geprüft werden).
Aber die Schleifensache erscheint mir halt sehr umständlich.

Hans

michlchen

unread,
Feb 28, 2012, 5:04:35 AM2/28/12
to
wie wäre es, das ganze in ner msgbox anzuzeigen? da kannste alles
reinpappen.
beim klick auf ok haste dann wieder deine textbox.

soll ja nur dazu dienen, den kompletttext anzuzeigen oder?

Hans Alborg

unread,
Feb 29, 2012, 5:22:37 PM2/29/12
to
"michlchen" schrieb
...
Mit der Textbox läufts schon! Der Code:
'-------------------------------------------------------------
Sub Lauftext_FRechner() ' Laufschrift vrnl

If F_Rechner.TextBox3.Text = "" Then Exit Sub
Dim I As Integer
Halt = False
If Lauftext = Empty Then _
Lauftext = " >" & F_Rechner.TextBox3.Value
Do Until Halt = True ' Kurz warten
For I = 0 To 15000: DoEvents: Next
DoEvents
If Halt = True Then Lauftext = "": Exit Sub
Lauftext = Lauftext & Mid(Lauftext, 1, 1)
Lauftext = Mid(Lauftext, 2, Len(Lauftext) - 1)
F_Rechner.TextBox3.Text = Lauftext
Loop
End Sub
'---------------------------------------------------------
Das ist aus einem Internet- Beispiel (sorry daß mir jetzt die Quelle fehlt).
Der gesamte Code war mit Vor- und Rücklauf und somit etwas umfangreicher. Er
wurde per Buttons ausgelöst. Mein Code startet wenn ich die Maus über die
Textbox bewege:
'---------------------------------------------------------
Private Sub TextBox3_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
' Lauftext in TextBox3
Call Lauftext_FRechner
End Sub
'------------------------------------------------------
Damit war mein Problem gelöst. Ich hänge noch ein " >" an den Textanfang
(s.o.), um den Anfang des Fließtextes zu markieren.

Eine Msgbox halte ich nicht für angebracht, da das Ganze ja auf einer
Userform stattfindet, die einen Taschenrechner nachahmt. Es gibt diverse
Buttons für Ziffern, Optionen etc., und 4 Textboxen für Eingaben und
Ergebnisse. Eine Msgbox auf einer Userform ist mir neu.

Ich würde ja das Dingens gern veröffentlichen, aber das "echte" Rechnen
erfolgt per Excel auf einem Tabellenblatt. Userform und Code allein nutzen
also nichts...
Außerdem ist es noch nicht fertig (falsche Eingaben blocken usw.).
Aber einen Zeitrechner in der ganzen Mappe aufrufen zu können (aus der
Schnellstartleiste) ist schon was Feines :-)

Hans

0 new messages