Zitat von
NeoDeluxe:
Soooooooooooooooooooooooooooooooooooooong! Sorry, hab nichts kapiert kannst du bitte etwas genauer erklären.=>Quelltext
Danke.
Grüße NeoDeluxe
Na gut... hier der Quelltext (ist nur so auf die schnelle geschrieben)
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
bild_mitte : TPoint;
min_abstand : Int64;
abstand,
dif_x,
dif_y : Extended;
links,
oben : Integer;
begin
bild_mitte.x := Image1.Left + (Image1.Width div 2);
bild_mitte.y := Image1.Top + (Image1.Height div 2);
min_abstand := 300;
links := 0;
oben := 0;
dif_x := bild_mitte.x - x;
dif_y := bild_mitte.y - y;
if (dif_x < 0) then
begin
dif_x := dif_x * -1;
end;
if (dif_y < 0) then
begin
dif_y := dif_y * -1;
end;
abstand := Round(sqrt((dif_x * dif_x) + (dif_y * dif_y))); //Abstand der Maus zum Bild;
if (abstand < min_abstand) then
begin
if (y <> bild_mitte.y) then
begin
if (y < bild_mitte.y) then
begin
oben := -1;
end
else
begin
oben := +1;
end;
end;
if (x <> bild_mitte.x) then
begin
if (x < bild_mitte.x) then
begin
links := -1;
end
else
begin
links := +1;
end;
end;
image1.Left := image1.left - links;
image1.top := image1.top - oben;
end;
end;
Was ich mache:
Ich ermittele den Mittelpunkt des Bildes.
Delphi-Quellcode:
bild_mitte.x := Image1.Left + (Image1.Width div 2);
bild_mitte.y := Image1.Top + (Image1.Height div 2);
Dann berechen ich die entfernung zur maus:
abstand := Round(sqrt((dif_x * dif_x) + (dif_y * dif_y))); //Abstand der Maus zum Bild;
Satz des Pyt: a² + b² = c²
Und jetz prüfe ich nur noch ob die Maus oberhalb, unterhalb, links oder rechts vom Bild ist und verschiebe es entsprechend.
Stephan B.
"Lasst den Gänsen ihre Füßchen"