![]() |
Problem mit einer Weltmap und 10x10er kästchen...
Ja sorry scheiss überschrift.
Also ich habe in der Image1 eine Jpeg Weltkarte, auf der 10x10 pixel große Kästchen sind *G* jetzt habe ich ein neues 10x10 Image erstellt und es so gemacht, dass das kästchen, wenn ich auf die Weltkarte klicke rastert.... aber es funzt noch ned ganz also MausPos X nehmen, druch 10 teilen, dann runden und mit 10 multiplizieren dann image2 an diesen wert übergeben, das gleiche mit Y Aber zB. bei 186 klicke ich in das 18 Kästchen aber er rundet es auf 19 und setzt daher auch das Image2 auf 19.... ?? wie kann ich das ändern? müßte ja irgendwie so sein. X XX1-XX9 stelle um auf XX0 *G* also egal ob 1,2,3 oder 6,7,8 er soll immer abrunden. keine Ahnung ob mich nun jemand verstanden hat... :( |
Re: Problem mit einer Weltmap und 10x10er kästchen...
Eine Möglichkeit wäre div. Damit wird bei einer Division (Ganzzahl) nur der Teil vor dem Komma als Ergebniss zurückgegeben. Also 25 div 20 = 1. Damit müsstest du dir ganz elegenat was bauen können.
|
Re: Problem mit einer Weltmap und 10x10er kästchen...
hallo,
soweit ich weiss, tut die funktion trunc genau was du willst, d.h. sie gibt den ganzzahligen anteil eines realwertes(etc.) zurück! bin mir aber nich ganz sicher!!!! heiopei |
Re: Problem mit einer Weltmap und 10x10er kästchen...
Zitat:
Greetz alcaeus |
Re: Problem mit einer Weltmap und 10x10er kästchen...
So *G* in der Zeit hab ich mir was eigenes gemacht *G* sicher voll umständlich
aber es erfüllt erstma seinen Zweck, werds aber mit div versuchen
Delphi-Quellcode:
SO OK habs mit Div gemacht sind ja dann auch nur 2 zeilen *G*
begin
p := Image1.ScreenToClient(Mouse.CursorPos); Wert1 := Round(p.X /10); Wert1 := p.X - Wert1*10; if Wert1 < 0 then Wert1 := Round((p.X -10)/10) else Wert1 := Round(p.X /10); Wert2 := Round(p.Y /10); Wert2 := p.Y - Wert2*10; if Wert2 < 0 then Wert2 := Round((p.Y-10)/10) else Wert2 := Round(p.Y /10); Shape1.Left := Wert1*10; Shape1.Top := Wert2*10; end; |
Re: Problem mit einer Weltmap und 10x10er kästchen...
Dann mal so
Delphi-Quellcode:
Wert1 und Wert2 als Integer deklarieren ;)
begin
p := Image1.ScreenToClient(Mouse.CursorPos); Wert1 := p.X div 10; Wert1 := p.X - Wert1 * 10; if Wert1 < 0 then Wert1 := (p.X -10) div 10 else Wert1 := p.X div 10; Wert2 := p.Y div 10; Wert2 := p.Y - Wert2 * 10; if Wert2 < 0 then Wert2 := (p.Y-10) div 10 else Wert2 := p.Y div 10; Shape1.Left := Wert1 * 10; Shape1.Top := Wert2 * 10; end; ...:cat:... |
Re: Problem mit einer Weltmap und 10x10er kästchen...
Habs jetzt so und es funzt super ohne fehler *G*
Delphi-Quellcode:
var p: TPoint;
Wert1: Shortint; Wert2: Shortint; begin p := Image1.ScreenToClient(Mouse.CursorPos); Wert1 := p.X div 10; Wert2 := p.Y div 10; Image2.Left := Wert1*10; Image2.Top := Wert2*10; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz