/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Mouse pos.
Fra : Harald


Dato : 30-03-04 20:07

Hej

Findes der en function der kan fortælle om mouse cursor befinder sig over
f.eks. en TImage. I øjeblikket benytter jeg Mouse.CursorPos og sammenligner
x,y med TImage værdierne?

Mvh
HK



 
 
Harald (30-03-2004)
Kommentar
Fra : Harald


Dato : 30-03-04 22:08

"Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
news:4069c567$0$493$edfadb0f@dread14.news.tele.dk...
> Hej
>
> Findes der en function der kan fortælle om mouse cursor befinder sig over
> f.eks. en TImage. I øjeblikket benytter jeg Mouse.CursorPos og
sammenligner
> x,y med TImage værdierne?

Den kode jeg bruger:

ImageMain er en TImage

var
Point : TPoint;
begin
if not Active then
exit;

Point:=ImageMain.ScreenToClient(Mouse.CursorPos);
if (Point.X<0) or (Point.Y<0) then
exit; // er udenfor

if (Point.X>ImageMain.Width) or (Point.Y>ImageMain.Height) then
exit; // er udenfor
..
..
..

Mvh
HK



David Konrad (31-03-2004)
Kommentar
Fra : David Konrad


Dato : 31-03-04 10:01

"Harald" <news10@-REMOVE-THIS-kroning.dk> wrote in message
news:4069e1a1$0$453$edfadb0f@dread14.news.tele.dk...
> "Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
> news:4069c567$0$493$edfadb0f@dread14.news.tele.dk...
> > Hej
> >
> > Findes der en function der kan fortælle om mouse cursor befinder sig
over
> > f.eks. en TImage. I øjeblikket benytter jeg Mouse.CursorPos og
> sammenligner
> > x,y med TImage værdierne?
>
> Den kode jeg bruger:
>
> ImageMain er en TImage
>
> var
> Point : TPoint;
> begin
> if not Active then
> exit;
>
> Point:=ImageMain.ScreenToClient(Mouse.CursorPos);
> if (Point.X<0) or (Point.Y<0) then
> exit; // er udenfor
>
> if (Point.X>ImageMain.Width) or (Point.Y>ImageMain.Height) then
> exit; // er udenfor

kan du ikke bruge

//hjælpefunktion
function getCursorPosEx:TPoint;
begin
getCursorPos(result);
end;

if ptInRect(dinkontrol.boundsrect,getCursorPosEx) then

???

(utestet)



Harald (31-03-2004)
Kommentar
Fra : Harald


Dato : 31-03-04 11:17

"David Konrad" <david_konrad_FJERN_@hotmail.com> skrev i en meddelelse
news:c4e1mq$8qj$1@sunsite.dk...
> "Harald" <news10@-REMOVE-THIS-kroning.dk> wrote in message
> news:4069e1a1$0$453$edfadb0f@dread14.news.tele.dk...
> > "Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
> > news:4069c567$0$493$edfadb0f@dread14.news.tele.dk...
> > > Hej
> > >
> > > Findes der en function der kan fortælle om mouse cursor befinder sig
> over
> > > f.eks. en TImage. I øjeblikket benytter jeg Mouse.CursorPos og
> > sammenligner
> > > x,y med TImage værdierne?
> >
> > Den kode jeg bruger:
> >
> > ImageMain er en TImage
> >
> > var
> > Point : TPoint;
> > begin
> > if not Active then
> > exit;
> >
> > Point:=ImageMain.ScreenToClient(Mouse.CursorPos);
> > if (Point.X<0) or (Point.Y<0) then
> > exit; // er udenfor
> >
> > if (Point.X>ImageMain.Width) or (Point.Y>ImageMain.Height) then
> > exit; // er udenfor
>
> kan du ikke bruge
>
> //hjælpefunktion
> function getCursorPosEx:TPoint;
> begin
> getCursorPos(result);
> end;
>
> if ptInRect(dinkontrol.boundsrect,getCursorPosEx) then

Takker, det var lige ptInRect jeg manglede.

if not
ptInRect(Minkontrol.BoundsRect,Minkontrol.ScreenToClient(Mouse.CursorPos))
then
exit;

/HK



Nicolai Hansen (01-04-2004)
Kommentar
Fra : Nicolai Hansen


Dato : 01-04-04 09:00

> if not
> ptInRect(Minkontrol.BoundsRect,Minkontrol.ScreenToClient(Mouse.CursorPos))
> then
> exit;
>
> /HK

Vi er næsten tilbage til dit eget forslag her ...

*snip snap fra types.pas*

function PtInRect(const Rect: TRect; const P: TPoint): Boolean;
begin
Result := (P.X >= Rect.Left) and (P.X < Rect.Right) and (P.Y >= Rect.Top)
and (P.Y < Rect.Bottom);
end;

/Nic

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste