Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit MouseMove Ereignis (https://www.delphipraxis.net/128362-problem-mit-mousemove-ereignis.html)

Tim-94 28. Jan 2009 15:40


Problem mit MouseMove Ereignis
 
Hallo alle zusammen :-D
Ich habe folgende Frage: Gibt es eine Möglichkeit, ein bestimmtes OnMouseMove Ereignis, was auf einem Panel ist,
auch auf ein Image anzuwenden? (Es soll also von dem MouseMove Ereignis des Images auf das MouseMove Ereignis vom Panel verweisen!)

Im Vorraus schonmal vielen Dank :o

DeddyH 28. Jan 2009 15:44

Re: Problem mit MouseMove Ereignis
 
Du kannst doch die Methode einfach im OI zuweisen. Oder hab ich das mal wieder falsch verstanden?

Tim-94 28. Jan 2009 15:49

Re: Problem mit MouseMove Ereignis
 
Ja kann man schon, nur leider ist dann ein Bild, was sich in meinem Programm
immer unter der Maus, innerhalb des Panels, bewegt, nicht mehr über dem anderen Bild, was sich
automatisch innerhalb des Panels bewegt.

DeddyH 28. Jan 2009 15:52

Re: Problem mit MouseMove Ereignis
 
Kannst Du das mal etwas näher erläutern, damit ich Opa verstehe, was Du machen willst?

Tim-94 28. Jan 2009 15:54

Re: Problem mit MouseMove Ereignis
 
Das soll eine Art Spiel werden:

1. Ein Image(mit einem Zielscheibenbild) bewegt sich automatisch innerhalb eines Panels.
2. Unter der Maus ist dann ein zweites Image (mit einem Zielkreuzbild), was sich immer mit der Maus bewegt.
3. Und wenn das Zielkreuz über dem Image mit der Zielscheibe ist, und man dann klickt, bekommt man immer einen Punkt.

Problem: Wenn die Maus über dem Zielscheibenbild ist, bewegt sich das Zielkreuzbild nicht mehr weiter, da das MouseMove Ereignis nur auf dem Panel ist.

DeddyH 28. Jan 2009 15:56

Re: Problem mit MouseMove Ereignis
 
Wäre es nicht einfacher und sinnvoller, das Fadenkreuz als Cursor einzubinden?

Tim-94 28. Jan 2009 16:01

Re: Problem mit MouseMove Ereignis
 
Wenn ich das gleiche MouseMove Ereignis auch auf dem Zielscheibenbild mache, dann wird das Zielkreuz an eine falsche Position bewegt!

Code (MouseMove Ereignis auf dem Panel):

Delphi-Quellcode:
procedure TSDIAppForm.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Image3.Left:=X-round(Image3.Width/2);
Image3.Top:=Y-round(Image3.Height/2);
Application.ProcessMessages;
end;



Code (Click Ereignis auf dem ZielscheibenImage):

Delphi-Quellcode:
procedure TSDIAppForm.Image4Click(Sender: TObject);
var Temp, Temp1:Integer;
begin
Temp:=Image4.Left+Image4.Width;
Temp1:=Image4.Top+Image4.Height;

if Start=true then begin
if (Image3.Left<=Temp) and (Image3.Left>=Image4.Left) and (Image3.Top<=Temp1) and (Image3.Top>=Image4.Top) then begin
//ShowMessage('Treffer');
Punkte:=Punkte+1;
PunktePanel.Caption:='aktuelle Punktzahl: '+InttoStr(Punkte);
end;
end;
end;


PS: Das ist immoment nur ein Testprogramm der Funktionen :-D

Tim-94 28. Jan 2009 16:04

Re: Problem mit MouseMove Ereignis
 
Ja das habe ich auch schonmal versucht, hat aber bei mir nicht funktioniert.
Es wäre nett, wenn du/sie mir mal einen Beispielcode dafür geben könntest/köntten.

Ich werde erst wieder ab ca. 18:30 Uhr antworten können, da ich jetzt weg muss.


Vielen Dank Tim :)

DeddyH 28. Jan 2009 16:05

Re: Problem mit MouseMove Ereignis
 
Wie gesagt, ich würde mir einen Fadenkreuz-Cursor basteln und OnClick nachsehen, ob sich der Cursor innerhalb des Images befindet (was beim Image.OnClick ja irgendwie immer der Fall sein müsste :lol:).

[edit] Cursor einbinden [/edit]

Tim-94 28. Jan 2009 18:03

Re: Problem mit MouseMove Ereignis
 
Jaa vielen Dank DeddyH es funktioniert alles! :-D


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