Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi In Grafik klicken, MouseOver und MouseLeave (https://www.delphipraxis.net/116780-grafik-klicken-mouseover-und-mouseleave.html)

stOrM 6. Jul 2008 12:54


In Grafik klicken, MouseOver und MouseLeave
 
Hallo nochmal,
bezugnehmend auf meinen vorherigen Post: Resource laden
Ich habs nun soweit hinbekommen, das mir ein Button auf den Form Canvas gemalt wird, den ich aus der Resource extrahiert hab, nun steh ich vor dem Problem, wie ermittel ich nun ob sich der Mauszeiger innerhalb dieser Grafik befindet und wie kann ich dort nun noch ein Klickereignis generieren?

Viele Grüsse
s!

vsilverlord 6. Jul 2008 13:19

Re: In Grafik klicken, MouseOver und MouseLeave
 
Also ich hab mal sowas ähnliches programmiert, und ich hab das mit mouse.cursorpos gemacht. Allerdings zeigt dir das die globale Position der Maus an, da musst du noch die Position des Formulars sowie die Position des Images abziehen:
Also z.b
Delphi-Quellcode:
if ((mouse.cursorpos.x-form1.left-image1.left)>250)and((mouse.cursorpos.x-form1.left-image1.left)<350)and((mouse.cursorpos.y-form1.top-image1.top)>250)and((mouse.cursorpos.y-form1.top-image1.top)<350)then
begin
(...)
In dem Beispiel hat der button jetzt die Länge 350-250=100 und Breite 350-250=100.
Bestimmt gibts auch einen einfacheren Weg.

stOrM 6. Jul 2008 13:22

Re: In Grafik klicken, MouseOver und MouseLeave
 
Zitat:

Zitat von vsilverlord
Also ich hab mal sowas ähnliches programmiert, und ich hab das mit mouse.cursorpos gemacht. Allerdings zeigt dir das die globale Position der Maus an, da musst du noch die Position des Formulars sowie die Position des Images abziehen:
Also z.b
Delphi-Quellcode:
if ((mouse.cursorpos.x-form1.left-image1.left)>250)and((mouse.cursorpos.x-form1.left-image1.left)<350)and((mouse.cursorpos.y-form1.top-image1.top)>250)and((mouse.cursorpos.y-form1.top-image1.top)<350)then
begin
(...)
In dem Beispiel hat der button jetzt die Länge 350-250=100 und Breite 350-250=100.
Bestimmt gibts auch einen einfacheren Weg.

Ah ich probier das mal aus, ich könnte ja auch ein twincontrol machen aber ich wollte mir das erstmal ersparen mal sehen obs so geht, erstmal vielen dank!

Viele Grüsse
Marc

DeddyH 6. Jul 2008 13:27

Re: In Grafik klicken, MouseOver und MouseLeave
 
Es gibt auch noch die API-Funktion PtInRect, die dürfte etwas unkomplizierter sein.

stOrM 6. Jul 2008 13:53

Re: In Grafik klicken, MouseOver und MouseLeave
 
Zitat:

Zitat von DeddyH
Es gibt auch noch die API-Funktion PtInRect, die dürfte etwas unkomplizierter sein.

Oh damit kenn ich mich nicht wirklichaus bzw habich noch nie angewendet :-(


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