Thema: Delphi Memo animieren...

Einzelnen Beitrag anzeigen

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