Thema: Delphi Memo animieren...

Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Memo animieren...

  Alt 13. Feb 2005, 15:02
Zitat von Benjin:
Was ist Memox.tag?
Delphi-Referenz durchsuchenTComponent.Tag ist eine Integervariable, die du benutzen kannst wie du willst. In diesem Fall verwende ich sie einfach dazu, die Left-Position des Memos zu speichern, damit ich weiss wann die Bewegung aufhoeren muss.

Zitat:
Und kannst du die Timerfunktionen in der Aufrufprozedur der Timer noch mal ausführlicher erklären, was da nach entsprechenden Anweisungen passiert?
Klar, auch wenn das schon teilweise gemacht wurde:

Timer1.Enabled := False; Das muss nicht unbedingt sein, aber ich hab mir angewoehnt, die Timer auszumachen waehrend der Event-Handler laeuft, nur falls der Code im Handler laenger dauert als ein Timer-Intervall. Ist hier zwar nicht der Fall, aber Gewohnheit

Memo1.Left := Memo1.Left-Step; Hier wird einfach der vorgegebene Wert von der linken Position des Memos abgezaehlt.

Timer1.Enabled := (Memo1.Left + Memo1.Width) > 0; Hier wirds komplizierter. Wir duerfen den Timer naemlich nur einschalten, wenn das Memo noch sichtbar ist. Nachdem wir es nach links schieben, ueberpruefen wir, ob die rechte Kante des Memos noch im Form ist, also der Wert > 0. Die Position der rechten Kante errechnet sich aus linker Kante + Breite. Und um alles kuerzer zu machen, weisen wir den Wert dieser Abfrage (=Boolean) der Enabled-Property des Timers zu. Ist die Bedingung wahr, also das Memo noch sichtbar wird der Timer wieder eingeschaltet, sonst bleibt er aus.

Delphi-Quellcode:
if not Timer1.Enabled then
    ShowMessage('Done');
Wie gesagt...das ist nur zur Kontrolle dass alles ordnungsgemaess laeuft und auch wieder aufhoert.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat