AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mauposition auf beweglichem Image ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Mauposition auf beweglichem Image ermitteln

Ein Thema von Dunkelbunt27 · begonnen am 27. Feb 2011 · letzter Beitrag vom 27. Feb 2011
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 18:22
Hallo Delphi-PRAXIS,

ich versuche die aktuelle Klick Position auf einem Image, das sich verschieben lässt zu ermitteln.
Wenn man über Mouse.Cursor.Pos.Y des Images (Y-Koordinate) ermittelt, ist dies aber immer auf den gesamten sichtbaren Bereich des Fensters bezogen.
Da man das Image auch nur zum Teil sehen kann, in dem man es über den unteren Rand rutschen lässt, ist es aber schwierig rauszubekommen, wo man auf dem Image hingeklickt hat, da egal wo das Objekt ist, wenn die Maus sich nicht bewegt, aber das Objekt, liefert Mouse.Cursor.Pos.Y immer das gleiche.

Gibt es eine Möglichkeit Koordinaten auf einem Objekt abzufragen, so wie es mit der Form ist?
(Links oben 1:1, rechts unten z.B. 100:100)

FG Dunkelbunt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 19:12
Mouse.CursorPos gibt Dir die Bildschirmkoordinaten zurück. Die kannst Du aber mit ScreenToClient umrechnen, oder Du verwendest ein Ereignis des Images, das Dir die relativen Koordinaten liefert (OnMouseDown).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#3

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 19:45
Liefert mir das OnMouseDown des Images auch mittels Mouse.Cursor.Pos die Koordinaten zurück? Oder was muss ich nehmen?

EDIT: Ich wollte die Koordinaten testweise mal auf einem Label ausgeben:
Testlabel.Caption := 'Y: '+IntToStr(Y)+' X: '+IntToStr(X); Es passiert beim klicken aber nichts...

Geändert von Dunkelbunt27 (27. Feb 2011 um 20:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 20:02
PointToStr darfst Du AFAIK selbst programieren,
OnMouseXXXX liefert Dir in X und Y die Koordinaten innerhalb Deines Controls zurück.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#5

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 20:09
PointToStr hab ich
Delphi-Quellcode:
function PointToStr(aPoint: TPoint): string; //Point in String umwandeln
begin
  Result := Format('X: %d | Y: %d',[aPoint.X, aPoint.Y]); // Format wandelt um
  // %d = Dezimal, Standardgerüst: %[Index:][-][Width][.Precision]Type
end;
ScreenToClient hilft mir anscheinend noch nicht weiter. Ich denke OnMouseDown wird funktionieren.

Geändert von Dunkelbunt27 (27. Feb 2011 um 20:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 20:49
Könnte mir jemand spontan einen Grund nennen, wieso mein zur Laufzeit erstelltes Image auf meine eigene OnMouseDown Prozedur nicht richtig auf das klicken reagiert?
Wenn ich ein neues Image einfüge und dann die vordefinierte OnMouseDown nehme, funktioniert alles....

Edit: Sorry für Doppelpost

Geändert von Dunkelbunt27 (27. Feb 2011 um 21:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 20:53
weist Du Deinem zur Laufzeit erzeigten Image eine OnMouseDown - Methode zu?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#8

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 21:02
Also, ich hab es so gemacht:
Delphi-Quellcode:
public
procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
...
procedure TProjekt.ImageMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   Testlabel.Caption := 'X: '+ IntToStr(X)+ 'Y: '+IntToStr(Y);
end;
Ist doch richtig, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 21:25
ich meinte etwas in der Art ....
Delphi-Quellcode:
with TImage.Create(self) do
  begin
    Parent := Form1;
    Left := 10;
    Top := 20;
    OnMouseDown := ImageMouseDown;
    ....
  end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#10

AW: Mauposition auf beweglichem Image ermitteln

  Alt 27. Feb 2011, 21:49
Ja sowas in der Art habe ich.
Nur das
Code:
OnMouseDown := ImageMouseDown;
fehlt

Danke... mal schauen obs klappt

EDIT: Ja, jetzt funktionierts. Danke.

Geändert von Dunkelbunt27 (28. Feb 2011 um 15:08 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
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