AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezogen?)
Thema durchsuchen
Ansicht
Themen-Optionen

getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezogen?)

Ein Thema von Sadrax · begonnen am 12. Dez 2004 · letzter Beitrag vom 12. Dez 2004
Antwort Antwort
Sadrax

Registriert seit: 26. Okt 2004
Ort: Gommern
14 Beiträge
 
#1

getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezogen?)

  Alt 12. Dez 2004, 13:33
Hallo, ich habe in meinen Programm die Canvas in meinen TImage in 9 Teile aufgeteilt (3x3 mit je 100x100 Pixeln).
Nun wollte ich wissen wenn man auf diese Canvas klickt, in welchen Bereich der Klick war.
Ich habe die Prozedur getCursorPos() und die Funktion Mouse.CursorPos.x/y gefunden.
Diese geben ja immer die Position gesehen vom gesamten Bildschirm an.
Deswegen habe ich nun folgenden Quelltext geschrieben:
Code:
...
  getCursorPos(pos);
  x := Pos.X;
  x := x - Form1.Left;
  x := x - (Form1.Width - ClientWidth);
  y := Pos.y;
  y := y - Form1.Top;
  y := y - (Form1.Height - ClientHeight);
...
geht es auch einfacher?
Und noch was, ich habe mit einem Timer immer in 4 Labels die aktuellen x und y Werte einmal mit getCursorPos und einmal mit Mouse.CursorPos ausgelesen, dort standen auch immer die gleichen Werte, aber wenn ich für den Code oben Mouse.CursorPos verwendete bekam ich völlig andere (für mich nicht nachvollziebare) Werte, woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezog

  Alt 12. Dez 2004, 13:42
Zitat:
Die Methode ScreenToClient wandelt die Bildschirmkoordinaten eines bestimmten Punktes in Client-Koordinaten um.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezog

  Alt 12. Dez 2004, 14:00
nun ja....versuch´s so:
in einem OnMouseUp event schreibst du so etwas:

posx := (X-a) div width_f;
posy := (Y-a) div width_f;

wo width_f deine beliebige Breute ist (nämlich 100) und a ist 1/2 des abstandes zwitschen 2 Rect´s
also noch einmal:

--a--|---------------width_f---------------|--a----a--|---------------width_f---------------| und so weiter.... das gilt für die y-Axe genauso. und somit weist du wo du geklickt has
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Sadrax

Registriert seit: 26. Okt 2004
Ort: Gommern
14 Beiträge
 
#4

Re: getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezog

  Alt 12. Dez 2004, 20:27
Danke werde es mal ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: getCursorPos() und Mouse.CursorPos.x/y (auf Canvas bezog

  Alt 12. Dez 2004, 20:39
\\edit: Nö, war falsch
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  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 01:04 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