AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Memo animieren...

Ein Thema von Benjin · begonnen am 13. Feb 2005 · letzter Beitrag vom 8. Sep 2005
 
Benutzerbild von alcaeus
alcaeus

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

Re: Memo animieren...

  Alt 13. Feb 2005, 13:08
Hallo Benjin,

ich wuerde es mit Timern machen:

Delphi-Quellcode:
const
  TimeOut = 5;
  Step = 2;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Tag := Memo1.Left;
  Timer1.Enabled := False;
  Timer2.Enabled := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer2.Enabled := False;
  Timer1.Interval := TimeOut;
  Timer1.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Timer1.Enabled := False;
  Timer2.Interval := TimeOut;
  Timer2.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  Memo1.Left := Memo1.Left-Step;
  Timer1.Enabled := (Memo1.Left + Memo1.Width) > 0;
  if not Timer1.Enabled then
    ShowMessage('Done');
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Timer2.Enabled := False;
  Memo1.Left := Memo1.Left+Step;
  Timer2.Enabled := Memo1.Left < Memo1.Tag;
  if not Timer2.Enabled then
    ShowMessage('Done');
end;
Erklaerungen:
  • die Konstanten "TimeOut" und "Step" regeln gemeinsam die Geschwindigkeit, spiel einfach damit rum bis sie dir passen. Je kleiner TimeOut und je groesser Step desto schneller fliegt das Memo rum.
  • Im OnCreate schalten wir die Timer mal aus und speichern die Position vom Memo.
  • Wird auf den ersten Button geklickt, so schalten wir den 2. Timer aus, d.h. wir stoppen eine evtl. Rechtsbewegung des Memos. Anschliessend setzen wir das Timeout fuer den Timer und schalten ihn ein. Analog verhaelt es sich mit Button2
  • Im OnTimer-Event schalten wir den Timer sicherheitshalber aus, ziehen Step von Memo1.Left ab, und schalten den Timer nur wieder ein, wenn die rechte Kante des Memos noch sichtbar ist. Analog geht es auch fuer Timer2.

Die if-Abfrage mit ShowMessage kannst du auch entfernen, sie ist nur zur Demonstration da, damit du siehst dass das Memo auch aufhoert sich nach links zu bewegen

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz