Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MausPos als real wiedergeben? (https://www.delphipraxis.net/164050-mauspos-als-real-wiedergeben.html)

Kartoffel 27. Okt 2011 08:05

MausPos als real wiedergeben?
 
Hallo,
da ich im Formum nichts dazu gefunden habe würde ich gerne mal wissen, ob man denn eine MausPos in real ausgeben kann....
Delphi sagt zumindest mal nein wenn ich es versuche:-D

Es wird in meinem Programm ein Punkt in einem Image gezeichnet (bis zu 4 Punkten), diese Punkte haben eine Ladung nun wird die Kraft auf die anderen Punkte ausgerechnet (Culombsches Gesetz), diese Zahl liegt als real vor...nun sollen die dazugehörigen Feldlinien gezeichnet werden Hiezu muss ich aber meine real auf eine stelle runden, da ich für MoveTo LineTo usw. schlieslich integer brauche.
Nahe an den Punkten zeichnet das Programm die Feldlinien richtig weiter weg verändern die Linien ihre Y-Koordinate nicht mehr wegen dem Runden.

Alöso wäre meine Hauptfrage, wie kann ich das verhindern??

ibp 27. Okt 2011 08:13

AW: MausPos als real wiedergeben?
 
Hallo und Herzlich Willkommen im Forum..

Zur Antwort. Die Bildschirmausgabe in Pixel sind nun mal Koordinaten im Ganzzahlenraum. Du kannst nur mit einer eigenen konvertierungslogik real>integer das ganze steuern, welcher Bildpunkt dann angesprochen wird!

Kartoffel 27. Okt 2011 08:17

AW: MausPos als real wiedergeben?
 
Ok das Prinzip das du meinst ist mir klar, aber ich weiß nicht wie ich das umsetzen soll.

DeddyH 27. Okt 2011 08:23

AW: MausPos als real wiedergeben?
 
Du rechnest intern mit Fließkommazahlen und rundest die dann erst bei der Ausgabe (also beim Zeichnen) auf ganzzahlige Werte (Round, Trunc, Int als Stichworte).

ibp 27. Okt 2011 08:31

AW: MausPos als real wiedergeben?
 
Entweder höhere Auflösung oder Zoom-Funktion. Du solltest beachten, dass Datenlage und Ausgabe gerade für solche Fälle oft diese Differenzen aufweisen.

Ansonsten gibt es einige Funktionen wie du Real in Integer umwandeln kannst...

trunc,round,roundto,simpleroundto....

oder du wichtest die Nachkommastelle selber

Kartoffel 27. Okt 2011 10:00

AW: MausPos als real wiedergeben?
 
Nun habe ich ein weiteres Problem.....

Es passt jetzt grob alles, aber da die MausPos mit der Bildschirmauflösung zusammenhängt setzt das Programm die Punkte bei einer anderen Bildschirmauflösung falsch, was sehr nervig ist.

Wie kann ich dieses Problem umgehnen? Bzw. wie ich die MausPos nur für das Image bestimmen ohne rücksicht auf die Bildschirmauflösung??

DeddyH 27. Okt 2011 10:11

AW: MausPos als real wiedergeben?
 
Ich glaube, Du suchst ScreenToClient. Allerdings werden Dir im OnMouseDown, OnMouseMove usw. doch bereits die relativen Mauskoordinaten übergeben.

Kartoffel 27. Okt 2011 10:15

AW: MausPos als real wiedergeben?
 
Zitat:

Zitat von DeddyH (Beitrag 1132819)
Allerdings werden Dir im OnMouseDown, OnMouseMove usw. doch bereits die relativen Mauskoordinaten übergeben.

Dachte ich ja auch aber anscheinend ist es nicht so...
Warunm sonst sollte die Auflösungsänderung solche Probleme bereiten?

ibp 27. Okt 2011 10:18

AW: MausPos als real wiedergeben?
 
Erkläre mal genauer was Sinn deines Projektes ist. Ich glaube das Problem ist eher EVA!

DeddyH 27. Okt 2011 10:19

AW: MausPos als real wiedergeben?
 
Ändert sich denn das Seitenverhältnis? Werden also z.B. die Icons auf dem Desktop gestreckt? Dann ist das Verhalten ja normal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 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