![]() |
OnClick auf Image
Hallo,
als erstes Mal: meine Delphi Kenntnisse sind sehr begrenzt, deshalb mag die Frage vielleicht etwas komisch wirken. Ich hab ein 500*500 Pixel großen Image Feld. Darin ist sagen wir ein Quadrart, sagen wir
Delphi-Quellcode:
Ich will nun einen Befehl ausgelöst haben, wenn man mit der Maus in das Quadrat klickt. Wie mache ich das?
rectangle(200,200,300,300)
Vielen Dank schonmal für Antworten |
Re: OnClick auf Image
Du benötigst die obere links und untere rechte Ecke des Rechtecks und den angeklickten Punkt (ich nehme mal an, diese Informationen hast du)
dann fragst du nurnoch ab, ob die X-Koordinate des Punktes > der X-Koordinate links oben und < der X-Koordinate rechts unten ist.. für Y entsprechend und wenn alle 4 Abfragen true sind, ist innerhalb des Rechtecks geklickt worden..wenn du statt > und < >= und <= verwendest, werden auch die Ränder mit einbezogen |
Re: OnClick auf Image
Dafür gibt's ne API-Funktion. :)
Delphi-Quellcode:
var
r: TRect; p: TPoint; begin r.x := ...; r.y := ...; p.left := 200; p.top := 200; p.right := 300; p.bottom := 300; if (PtInRect(r, p)) then begin ShowMessage('ja'); end else begin ShowMessage('nein'); end; end; |
Re: OnClick auf Image
Zitat:
Delphi-Quellcode:
oder sowas rein? weil da steckt ja nicht drin bei was er dies amchen soll oder?
with Image1.Canvas do
|
Re: OnClick auf Image
Zitat:
Wichtig sind nur die Größe und Lage des Rechtecks, sowie die Koordinaten des Klicks. Kleines Beispiel, um die X- und Y-Koordianten des Klicks herauszufinden. Alternativ könnte man auch "OnMouseDown()", wenn das Drücken der Taste reicht, dann bekomtm man die Koordinaten direkt über zwei Parameter der Funktion. Wenn es ein richtiger Klick (Taste runter und wieder hoch) sein soll/muss, bleibt nur OnClick(). :)
Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
var P: TPoint; X, Y: Integer; begin if (GetCursorPos(p)) then begin P := ScreenToClient(P); X := P.X - Image1.Left; Y := P.Y - Image1.Top; end; end; |
Re: OnClick auf Image
Zitat:
Ich verstehe was du meinst, bräuchte dafür aber noch einen Befehl der mit beim klicken auf ein Image die angeklickte Koordinate in eine Variable schreibt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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