Dear Unbekannt,
Ich kann bereits über ein Form_Timer
ein Objekt hin und her bewegen, ich hätte aber gerne eine Bewegung quer über das Formular, geht das ? Und wie ??
Vielen Dank !!!
Barbara
Dear Unbekannt,
Ich kann bereits über ein Form_Timer
ein Objekt hin und her bewegen, ich hätte aber gerne eine Bewegung quer über das Formular, geht das ? Und wie ??
Vielen Dank !!!
Barbara
Dear Unbekannt,
Ich kann bereits über ein Form_Timer
ein Objekt hin und her bewegen, ich hätte
aber gerne eine Bewegung quer über das
Formular, geht das ? Und wie ??
vielleicht verstehe ich ja nicht genau, was du vorhast, aber normalerweise geht das durch schreibenden zugriff auf die left und top eigenschaft des objekts, z.b. in einer for/next-schleife:
for i = linkePos to rechtePos
ObjektBla.left = i
next i
meintest du sowas?
michael
Vielen Dank für die Antwort, aber das Problem ist, dass For-next-Schleifen viel zu schnell ablaufen, das Objekt ist an Punkt 1 und dann sofort am Endpunkt, es soll sich aber, ähnlich wie ein Moorhuhn, langsam von links nach rechts bewegen.
Barbara
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich kann bereits über ein Form_Timer
ein Objekt hin und her bewegen,
Dann hast Du ja schon die Lösung…
ich hätte
aber gerne eine Bewegung quer über das
Formular, geht das ? Und wie ??
Genau so: Form_Timer, darin die Koordinaten verändern. Was klappt dabei nicht?
Gruß
J.
Hi Barbara,
Besser?
Gruß Mario
Hi Mario,
hast Du das selbst schon mal ausprobiert ? Steps unter 1 führen bei mir unweigerlich zum Absturz. Das Objekt hat zudem die Neigung, sich erst zu bewegen (und zwar blitzartig) wenn das Programm abgearbeitet ist.
Barbara
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi J.
das hin- und herbewegen funktioniert nur über die Interval-Eigenschaft des Formulars.
Me.TimerInterval = 1000
Sub Form_Timer()
Static Bildbewegung as Integer
If Bildbewegung then
Me!Bild1.Left = 2
Else
Me!Bild1.Left = 20
End If
Bildanzeigen = Not Bildanzeigen
Damit taucht das Bild1 einmal rechts und dann wieder links im Wechsel auf, es bewegt sich aber nicht kontinuierlich in eine Richtung. Auch
Start = Time
If Time = Start + 2
Me!Bild1 left = 2 etc…
funktioniert nicht.
Barbara
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Barbara,
also bei mir hat’s wunderbar gefunzt…
das Objekt gleitet ganz langsam über die Form.
Greets Mario
Hi J.
das hin- und herbewegen funktioniert nur
über die Interval-Eigenschaft des
Formulars.
Richtig.
Me.TimerInterval = 1000
Sub Form_Timer()
Static Bildbewegung as Integer
If Bildbewegung then
Me!Bild1.Left = 2
Else
Me!Bild1.Left = 20
End If
Bildanzeigen = Not Bildanzeigen
Ja, wenn Du das so machst - Du setzt den Intervall auf einer Sekunde und tust, nachdem die Zeit abgelaufen, einen Riesenschritt.
Wenn Du aber kleinere Intervalle nimmst (z.B. 20 oder 50 ms) und kleinere Schritte nimmst, bewegst Du das Bild kontinuierlich.
Also etwa so:
Sub Form_Timer()
Bild1.Left = Bild1.Left + 1
If Bild1.Left > 20 then Bild1.left = 1 ’ oder so
End Sub
Wenn Du einen zu kleinen Intervall nimmst, mußt Du aufpassen, daß Du keinen weitern Timer-Event bekommst, während Du in der Bearbeitung bist - sonst gibt es Chaos. Das erreichst Du dadurch, daß Du am Anfang TimerInterval auf 0 setzt und am Ende wieder auf 20 (oder was auch immer), also so:
Sub Form_Timer()
Me!TimerInterval=0
Bild1.Left = Bild1.Left + 1
If Bild1.Left > 20 then Bild1.left = 1
Me!TimerInterval=20
End Sub
Die Lösungen ohne Timer funktionieren nie so richtig, außerdem ist es brutaler Ressourcenverbrauch, da der Rechner immer in der Schleife ist und nichts anderes tut.
Gruß
José