Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Objekt an Mausposition binden (https://www.delphipraxis.net/119416-objekt-mausposition-binden.html)

grebaldi 26. Aug 2008 00:45


Objekt an Mausposition binden
 
Guten Morgen, Gemeinde!

Mein Problem sieht folgendermaßen aus:

Ich möchte ein TShape mit dem OnStartDrag-Ereignis eines Labels erzeugen und dafür sorgen, dass dieses Shape der Maus folgt. Mit dem OnEndDrag-Ereignis des Labels soll das Shape dann wieder verschwinden.

Ich bin leider völlig ratlos, obwohl es ja ziehmlich simpel klingt...

Hoffentlich wisst ihr alle mehr als ich...

Beste Grüße,
grebaldi

Sidewinder 26. Aug 2008 01:14

Re: Objekt an Mausposition binden
 
ueber den paint-event der Form könnte man die mousepos übergeben z.B.

grebaldi 26. Aug 2008 01:37

Re: Objekt an Mausposition binden
 
dann würde das shape aber der maus nicht folgen

mr_emre_d 26. Aug 2008 01:39

Re: Objekt an Mausposition binden
 
klar würde er das machen ;)

grebaldi 26. Aug 2008 01:45

Re: Objekt an Mausposition binden
 
habs eben ausprobiert... Er machts nicht... :wall:

Sidewinder 26. Aug 2008 01:45

Re: Objekt an Mausposition binden
 
Zitat:

klar würde er das machen
Hmmmm.. jein... man müste die Form immer wieder neu zeichnen... nicht gut....

Sidewinder 26. Aug 2008 01:49

Re: Objekt an Mausposition binden
 
- setz ne globale var durch den labeldragevent
- Form.onmousemove... übergeb damit die cursorpos...
uuppsss vergessen.. sample:

Delphi-Quellcode:
var blub : boolean;

Procedure tform1.onmousemove();
begin
  if (Shape <> nil) and blub then
  begin
    {poswerte übergeben}
  end;
end;

grebaldi 26. Aug 2008 01:58

Re: Objekt an Mausposition binden
 
Jo, die Idee hatte ich auch gerade, aber da gibt es ein geringfügiges Problem.
Wenn sich die Maus nun innerhalb der Listbox oder irgendeinem beliebigen Element auf dem Formular befindet, bewegt sich das Shape nicht mehr mit.
Rein Theoretisch müsste ich die Routine in alle vorhandenen OnMouseOver-Events einbinden, damit das einwandfrei funktioniert - aber gibt es da nicht vielleicht eine elegantere Lösung?

Sidewinder 26. Aug 2008 02:02

Re: Objekt an Mausposition binden
 
schei.. stimmt... sorry bin etwas eingerostet... :wall:

mr_emre_d 26. Aug 2008 02:15

Re: Objekt an Mausposition binden
 
Code:
timer, intervall: 10

OnTimer:
  Shape1.Left := ScreenToClient( Mouse.CursorPos ).X - Shape1.Width div 2;
  Shape1.Top := ScreenToClient( Mouse.CursorPos ).Y - Shape1.Height div 2;
Ist nicht so elegant, aber das müsste für dich reichen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.
Seite 1 von 2  1 2      

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