Hi,
ich weiß,
aber ich mach das nicht so, wie in deinem beispiel. Meine Prozedur ist folgende:
Delphi-Quellcode:
procedure TFigur.DoMove(MoveCount: Integer);
var
xWeg, yWeg, xDiff, yDiff, Schritt: Integer;
Strecke: Single;
begin
inherited DoMove(MoveCount);
if not selected then exit;
if Move then
begin
xWeg := aX - StrToInt(FloatToStr(X));
yWeg := aY - StrToInt(FloatToStr(Y));
Strecke := SQRT(SQR(xWeg) + SQR(yWeg));
Schritt := Round(Strecke / 2);
if Schritt = 0 then
Schritt := 20;
xDiff := xWeg div Schritt;
yDiff := yWeg div Schritt;
X := StrToInt(FloatToStr(X)) + xDiff;
Y := StrToInt(FloatToStr(Y)) + yDiff;
if (X = aX) and (Y = aY) then
Move := false;
aX und aY sind die Mauskoordinaten. Deswegen weiß ich nicht ganz was ich da jetzt machen soll. Ich hab zwar schon einiges probiert:
Delphi-Quellcode:
if X < aX then
//...
if X < xDiff then
//...
if X < xWeg then
//...
Aber nichts davon führte zum gewünschten ergebnis.
aber für ist eigentlich MoveCount gedacht?