Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi adDraw und cursor position (https://www.delphipraxis.net/115202-addraw-und-cursor-position.html)

Ricoo 7. Jun 2008 22:57


adDraw und cursor position
 
hallo leute =)

ich bastel gerade ein bisschen mit Andorra 2D und würde gerne ne grafik auf meinem adDraw per maus bewegen.
das funktioniert soweit auch nur aber irgentwie total versetzt.. also ich kann die grafik bewegen, nur ist die halt immer ein
paar hundert pixel neben dem cursor, was doch ziemlich störend ist.

zeichnen tuhe ich das ganze wie folgt:



Delphi-Quellcode:
procedure TForm1.Idle(Sender: TObject; var Done: Boolean);
var   posx, posy: Integer;
begin
  AdDraw.ClearSurface(clBlack);

  posx := Mouse.CursorPos.X;
  posy := Mouse.CursorPos.Y;

  if (posx > AdDraw.Display.Width - 90) then posx := AdDraw.Display.Width - 90;
  if (posy > AdDraw.Display.Height - 10) Then posy := AdDraw.Display.Height - 10;

  AdDraw.BeginScene;

  AdImageList.Find('base').Draw(AdDraw, posx, posy, 0);

  AdDraw.EndScene;
  AdDraw.Flip;

  Done := False;

end;
habt ihr vielleicht ne idee woran das liegen könnte?

über hilfe würd ich mich freuen.

gruß

Fussball-Robby 7. Jun 2008 23:21

Re: adDraw und cursor position
 
Mouse.CursorPos ist relativ zur linken oberen Ecke des Desktops, das Zeichnen passiert aber relativ zur linken oberen Ecke der Form. Man muss die Position also "umrechnen", und das übernimmt ScreenToClient.
Delphi-Quellcode:
  posx := ScreenToClient(Mouse.CursorPos).X;
posy := ScreenToClient(Mouse.CursorPos).Y;

Ricoo 7. Jun 2008 23:24

Re: adDraw und cursor position
 
jetzt funktionierts.

großes danke =D


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