![]() |
Delphi-Version: 7
Image auf die mit der Maus angeklickten Position setzen
Hallo!
Ich habe ein Problem ich will dass ein Image dorthin wandert, wohin man vorher mit der Maus einmal geklickt hat. Ich stelle mir das ungefähr so vor:
Code:
:?:
procedure TForm1.FormClick(Sender: TObject);
begin image1.Left := MouseClick.left ; image1.top := MouseClick.top ; end; Ich hoffe ihr könnt mir helfen! |
AW: Image auf die mit der Maus angeklickten Position setzen
Die Mausposition könnte dir helfen!
Delphi-Quellcode:
Dann hast du p.X und p.Y
var
p: TPoint; begin p := Mouse.CursorPos; |
AW: Image auf die mit der Maus angeklickten Position setzen
Bitte beachten, dass Mouse.CursorPos die globalen Werte liefert. Wenn man also nur auf dem eigenen Formular arbeitet, oder Komponente, dann OnMouseDown nutzen oder Werte anpassen.
|
AW: Image auf die mit der Maus angeklickten Position setzen
OnClick
OnMouseUp OnMouseDown |
AW: Image auf die mit der Maus angeklickten Position setzen
Zitat:
|
AW: Image auf die mit der Maus angeklickten Position setzen
Wie kann ich p (den Point) als Image Pos nehmen?
|
AW: Image auf die mit der Maus angeklickten Position setzen
Hi,
Du hast ja schon: Zitat:
Delphi-Quellcode:
Bedenke dabei aber:
image1.Left := p.X;
Zitat:
|
AW: Image auf die mit der Maus angeklickten Position setzen
Jetzt habe ich es mit diesem Code versucht:
Code:
aber das Bild verschwindet irgendwo im Nirgendwo. Es geht auch nicht mit image4.left := p.X und dann halt bei top das Y
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var p: TPoint ; begin image4.Visible := true ; image4.left := p.Y ; image4.top := p.X ; p := Mouse.CursorPos ; end; |
AW: Image auf die mit der Maus angeklickten Position setzen
Dass das Bild 'verschwindet' liegt daran, dass es auserhalb der Form liegt.
Du musst, bevor du die left/top Werte setzt noch P konvertieren. nicht : Zitat:
Delphi-Quellcode:
image4.left := ScreenToClient(p).Y
|
AW: Image auf die mit der Maus angeklickten Position setzen
geht nicht wandelt er anscheinend immer noch nicht um.
Bei mir sieht es jetzt so aus:
Code:
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var p: TPoint ; begin image4.Visible := true ; image4.left := ScreenToClient(p).Y ; image4.top := ScreenToClient(p).X ; p := Mouse.CursorPos ; end; |
AW: Image auf die mit der Maus angeklickten Position setzen
Ähm, du weißt aber schon dass die Anweisung von oben nach unten abgearbeitet werden und nicht von unten nach oben?
|
AW: Image auf die mit der Maus angeklickten Position setzen
Zitat:
Erst sagst du dem Protokollanten, den du immer bei dir hast, er soll die Werte X und Y aufschreiben. Dann schreibt der Protokollanten etwas auf. Danach sagst du dem Protokollanten, was X und Y ist. Aber er hat schon geschrieben... Du müsstest das ganze noch in die Richtige Reihenfolge bringen. |
AW: Image auf die mit der Maus angeklickten Position setzen
Es sind nicht zufällig jemandem die übergebenen Parameter des OnMouseDown-Ereignisses aufgefallen?
:wall: |
AW: Image auf die mit der Maus angeklickten Position setzen
himitsu hat absolut Recht, da du inzwischen das Event gewechselt hast kannst du einfach die Parameter benutzen.
Delphi-Quellcode:
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState;[B] X, Y: [/B] Integer);
Delphi-Quellcode:
image4.left := Y; image4.top := X; |
AW: Image auf die mit der Maus angeklickten Position setzen
Jetzt noch richtig herum, und es wird ein Schuh draus.
Delphi-Quellcode:
Image4.Left := X;
Image4.Top := Y; |
AW: Image auf die mit der Maus angeklickten Position setzen
Dankeschön an alle! Mir ist es auch heute Morgen eingefallen. Der Standard Fehler von mir :(
*geschlossen* |
AW: Image auf die mit der Maus angeklickten Position setzen
Wenn ich das bei mir versuche, bekomme ich immer nur Undefinierter Bezeichner "Mouse".
Liegt das an meiner alten Delphi Version? |
AW: Image auf die mit der Maus angeklickten Position setzen
Wenn es bei Dir in Controls die Klasse TMouse nicht gibt nimm etwas in der Art
Delphi-Quellcode:
var
p:TPoint; begin GetCursorPos(p); Caption := IntToStr(p.X) +' - ' + IntToStr(p.y); end; |
AW: Image auf die mit der Maus angeklickten Position setzen
Danke, jetzt klappts
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz