Autor Beitrag
$ebbi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Mi 03.11.10 16:26 
Hi,

ich würd gerne die Mausposition in einer Form/ einen Image bestimmen. Bisher nimmt er bei mir aber immer den ganzen Bildschirm. Wie kann ich das nur auf die Form beschränken, also das in der linken oberen Ecked der Form 0,0 ist?
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 03.11.10 16:36 
Liefern die Ereignisse onMouseMove, onMouseDown usw nicht die x,y Koordinaten der Mouse?

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
$ebbi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Mi 03.11.10 16:42 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Liefern die Ereignisse onMouseMove, onMouseDown usw nicht die x,y Koordinaten der Mouse?

Gruss ALf



ja aber dann müsst ich klicken oder und dass soll eben nicht gemacht werden
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 03.11.10 16:44 
Schau doch mal bei onMouseMove rein :wink:
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!

Für diesen Beitrag haben gedankt: $ebbi
$ebbi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Mi 03.11.10 16:49 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Schau doch mal bei onMouseMove rein :wink:
Gruss Alf


merci :D
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 03.11.10 16:57 
Wenn Du mehrere Objekte dem gleichen Ereigniss zuordnest, in diesem Fall OnMouseMove, kannst Du über den Sender erfahren auf welchem Objekt Du gerade bist.
Nur so als Tipp. :wink:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Fr 24.12.10 18:54 
user profile icon$ebbi hat folgendes geschrieben Zum zitierten Posting springen:
ich würd gerne die Mausposition in einer Form/ einen Image bestimmen. Bisher nimmt er bei mir aber immer den ganzen Bildschirm. Wie kann ich das nur auf die Form beschränken, also das in der linken oberen Ecked der Form 0,0 ist?


Es hat noch keiner geklärt, wie man die Mausposition in dem Form bestimmt, sondern nur in welcher procedure/ auf welche Weise man sie lesen kann :)

Mein Problem ist in meinem Minigolfprogramm, dass ich eine Linie von der kugel zur Maus malen will.
Da er die Position der Maus von dem ganzen Bildschirm liest, muss ich folgende Formeln jedesmal benutzen und auch dann ist es sehr ungenau je nach Bildschirmgröße*:
"x:=Mouse.CursorPos.x - Form1.Left;
y:=Mouse.CursorPos.y - Form1.Top;"

*Bei meinem 24-Zoll-Bildschirm zuhause muss ich bei x "-29" und bei y "-8" an die Rechnung anhängen. In der Schule ist es, glaube ich, deshalb weniger, da wird dort nur 18-Zoll-Bildschirme haben. Kennt ihr eine Formel, die vll ungefähr so lautet: "x:=Form1.CursorPos.x;"

MfG Thomas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.12.10 19:13 
Benutze einfach ScreenToClient von der Komponente, auf die du die Koordinaten beziehen willst. ;-)
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Sa 25.12.10 02:37 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Benutze einfach ScreenToClient von der Komponente, auf die du die Koordinaten beziehen willst. ;-)


Wie muss ich das benutzen, als Funktioon?
Also:
ausblenden Delphi-Quelltext
1:
x:=ScreenToClient(Mouse.CursorPos.X);					
-> Das geht bei mir nämlich nicht wegen:
Zitat:
[Error] Unit1.pas(95): Incompatible types: 'TPoint' and 'Integer'


edit1:
Hab mich mal erkundigt und habs verstanden, danke für die Hilfe. sieht jetzt so bei mir aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Maus=TPoint;
.
.
.
Maus:=ScreentoClient(Mouse.CursorPos);
x:=Maus.x;
y:=Maus.y;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von beastofchaos am Sa 25.12.10 02:51, insgesamt 2-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 25.12.10 02:40 
Dann guck dir mal den Datentyp TPoint in der Hilfe an.
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Sa 25.12.10 03:18 
Hab ich ja jetzt schon. Geht das auch mit ScreenToImage2 oder etwas öhnliches. Also, dass ich eine Linie nur erzeuge, wenn die Maus in diesem Bereich des Forms ist?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 25.12.10 03:19 
user profile iconbeastofchaos hat folgendes geschrieben Zum zitierten Posting springen:
Hab ich ja jetzt schon. Geht das auch mit ScreenToImage2 oder etwas öhnliches.
:roll:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Benutze einfach ScreenToClient von der Komponente, auf die du die Koordinaten beziehen willst. ;-)
Wenn du da (wie du gepostet hast) die Methode des Formular nimmst, beziehen sich die Koordinaten eben auch darauf. :nixweiss:
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Sa 25.12.10 13:03 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Maus=TPoint;
.
.
.
Maus:=Image2.ScreentoClient(Mouse.CursorPos);
x:=Maus.x;
y:=Maus.y;


Wenn du das nicht explizit angibst, bezieht sich alles auf dein Hauptformular.

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)