Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Image auf die mit der Maus angeklickten Position setzen (https://www.delphipraxis.net/166894-image-auf-die-mit-der-maus-angeklickten-position-setzen.html)

newmusicslamer 4. Mär 2012 17:21

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!

Jonas Shinaniganz 4. Mär 2012 17:23

AW: Image auf die mit der Maus angeklickten Position setzen
 
Die Mausposition könnte dir helfen!
Delphi-Quellcode:
var
  p: TPoint;
begin
  p := Mouse.CursorPos;
Dann hast du p.X und p.Y

Popov 4. Mär 2012 17:26

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.

himitsu 4. Mär 2012 17:42

AW: Image auf die mit der Maus angeklickten Position setzen
 
OnClick
OnMouseUp
OnMouseDown

Luckie 4. Mär 2012 17:59

AW: Image auf die mit der Maus angeklickten Position setzen
 
Zitat:

Zitat von Popov (Beitrag 1154472)
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.

Oder mit ScreenToClient umrechnen.

newmusicslamer 4. Mär 2012 18:03

AW: Image auf die mit der Maus angeklickten Position setzen
 
Wie kann ich p (den Point) als Image Pos nehmen?

Jonas Shinaniganz 4. Mär 2012 18:29

AW: Image auf die mit der Maus angeklickten Position setzen
 
Hi,

Du hast ja schon:

Zitat:

Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
begin
image1.Left := MouseClick.left ;
image1.top := MouseClick.top ;
end;

Jetzt könntest du doch versuchen:

Delphi-Quellcode:
image1.Left := p.X;
Bedenke dabei aber:

Zitat:

Oder mit ScreenToClient umrechnen.
ScreenToClient(p).X ...

newmusicslamer 4. Mär 2012 18:40

AW: Image auf die mit der Maus angeklickten Position setzen
 
Jetzt habe ich es mit diesem Code versucht:
Code:
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;
aber das Bild verschwindet irgendwo im Nirgendwo. Es geht auch nicht mit image4.left := p.X und dann halt bei top das Y

Jonas Shinaniganz 4. Mär 2012 19:00

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 := p.Y ;

sonder :

Delphi-Quellcode:
 image4.left := ScreenToClient(p).Y

newmusicslamer 4. Mär 2012 19:06

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz