Home » Tutorials » Third-Party-Komponenten » MS Agent

MS Agent

Agenten positionieren

Wird die Methode Show aufgerufen, erscheint der Agent standardmäßig in der linken oberen Ecke. Das ist natürlich nicht immer sinnvoll. Über die Methode MoveTo kann der Agent frei auf dem Bildschirm positioniert werden.
Folgendes Beispiel zeigt Merlin an und verschiebt ihn dann auf die Position 100,200. Die ersten zwei Parameter stellen die x- und y-Koordinaten des gesamten Bildschirms dar, der dritte die Bewegungsgeschwindigkeit. Beim Wert 0 wird Merlin einfach verschoben; bei einem Wert größer als Null, setzt er zuerst eine Fliegerbrille auf und schaltet einen kleinen Propeller an seinem Hut an.

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Agent.Characters.Item['merlin'] do begin
    Show(0);
    MoveTo(100, 200, 0);
  end;
end;

Natürlich kann die Positionierung auch vor der Anzeige erfolgen.
Sollen sich die Koordinaten nicht auf den ganzen Bildschirm, sondern auf das Fenster unserer Anwendung beziehen, so muss ein TPoint-Konstrukt verwendet und mit Hilfe der Methode ClientToScreen umgerechnet werden. Bsp.:

procedure ShowAgent;
var p1: TPoint;
begin
  with Agent.Characters.Item['Merlin'] do begin
    p1.x := Edit1.Left;
    p1.y := Edit1.Top;
    p1 := ClientToScreen(p1);
    MoveTo(p1.x, p1.y, 0);
    Show(0);
  end;
end;

So wird Merlin direkt unterhalb der Komponente Edit1 angezeigt.