Einzelnen Beitrag anzeigen

Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#13

Re: Application Processmessages zum bewegen von Charakteren

  Alt 12. Jan 2004, 22:43
Ok Ich hab jetzt mit Threads hin und her experimentiert und bin zu folgendem Ergebnis gekommen:

Delphi-Quellcode:
Unit1:

procedure TForm1.FormCreate(Sender: TObject);
begin
  An := TAnim.Create(Self);
  An.Parent := self;
  Level1 := Level.Create(false);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if An <> nil then
    An.DoMove; // verschiebt die Animation um ein Paar Pixel Richtung Ziel
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Level1.Klick(Point(x,y));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Level1.running := false;
end;

end.
... und das Level (ausgelagert im Thread)
Delphi-Quellcode:
unit2:
procedure Level.Execute;
begin
  { Place thread code here }
  running := true;
  repeat
    Application.ProcessMessages;
  until running = false;
end;

procedure Level.Klick(APoint: TPoint);
begin
  if Walkto(APoint) then showmessage('Angekommen')
  else showmessage('Ziel geändert');
end;

function Level.WalkTo(APoint: TPoint): Boolean;
begin
  synchronize(Ziel(APoint));
  result := false;
  repeat
    Application.ProcessMessages;
    if (Form1.An.Ziel.X <> APoint.X) or (Form1.An.Ziel.Y = APoint.Y) then
    exit;
  until (Form1.An.Left = APoint.X) and (Form1.An.Top = APoint.Y);
  result := true;
end;

procedure Level.Ziel(APoint: TPoint);
begin
  Form1.An.Ziel := APoint;
end;

end.
bekomme dabei aber die Fehlermeldung "Incompatible Types 'TThreadMethod' and 'Procedure'"

Bin ich auf der richtigen Spur? Wie gehts weiter? Was ist der Unterschied zwischen TThreadMethod und Procedure?
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat