![]() |
Mausposition auf ImgView32 / Layer scrollen
Moin,
ich möchte wenn jemand auf das Bild (mit ImgView32) klickt, die Mausposition auf dem Bild haben.
Delphi-Quellcode:
Funktioniert auch wenn die Scrollbalken ganz links und ganz oben sind. Was mach ich jetzt aber wenn sie das nicht sind?
procedure TEditorForm.mapImageClick(Sender: TObject);
var x, y : Integer; P : TPoint; begin P := ScreenToClient(Mouse.CursorPos); x := P.X; y := P.Y; x := x - mapImage.Left; y := y - mapImage.Top; end; Grüße, MrPayne |
Re: Mausposition auf ImgView32
|
Re: Mausposition auf ImgView32
Jup Problem gelöst, Danke!
Falls es jemand interessiert:
Delphi-Quellcode:
P := ScreenToClient(Mouse.CursorPos);
P := mapImage.ControlToBitmap(P); P.X := P.X - mapImage.Left; P.Y := P.Y - mapImage.Top; |
Re: Mausposition auf ImgView32
Schon wieder ein Problem:
In des ImgView32 lad ich ne Grafik, da drauf mach ich ein Layer, wo ich was reinzeichne. Wenn ich jetzt scrolle scrollt zwar die Grafik aber das gezeichnete, also das Layer, bleibt am selben Fleck. Wie krieg ich das Layer dazu dass es mitscrollt? Mein Versuch war leider net so erfolgreich:
Delphi-Quellcode:
procedure TEditorForm.mapImageScroll(Sender: TObject);
var P : TPoint; left, top, right, bottom : Integer; begin left := Trunc(L.Location.Left); top := Trunc(L.Location.Top); P.X := left - mapImage.Left; P.Y := top - mapImage.Top; P := mapImage.ControlToBitmap(P); left := P.X; top := P.Y; right := left + 10; bottom := top + 10; Label3.Caption := IntToStr(left); Label4.Caption := IntToStr(top); L.Location := FloatRect(left, top, right, bottom); end; |
Re: Mausposition auf ImgView32 / Layer scrollen
War vielleicht net so klug des in alten Thread zu posten, da habens denk ich viele übersehen. Aber weiß denn niemand ne Lösung um die Layer mitscrollen zu lassen? Wäre recht wichtig....
PS: nochn Problem :roll: Wenn ich auf des Image klick wird ja im onMouseDown das Layer übergeben. Wenn ich nu neinmal ein Layer angeklickt habe dann ist dieses irgendwie so groß wie die ganze Grafik, danach wird, egal wo ich hinklicke dieses Layer angegeben... :?: :!: Als Notlösung geht natürlich alle Layer neu zu erstellen, aber da musses ja auch ne bessere Methode geben... Btw wie kann ichs eigentlich machen dass klicks nur auf dem nichttransparenten Teil des Layers registriert werden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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