![]() |
Image dem Mousezeiger folgen
Hallo,
der Mittelpunkt von meinem Images, welches ich auf meiner Form habe soll immer dem Mousezeiger folgen. Wie kann ich das machen? LG Chris |
Re: Image dem Mousezeiger folgen
Im OnMouseMove-Event des Forms zeichnest du direkt auf den Canvas des Forms.
Position ausgehend von der aktuellen Mouse Position. |
Re: Image dem Mousezeiger folgen
Hallo,
ja das bekomme ich irgendwie nicht hin |
Re: Image dem Mousezeiger folgen
auftragsprogrammierer sind wir hier nicht :-)
zeig mal her was du bis jetzt hast und wir schauen mal in den code rein. |
Re: Image dem Mousezeiger folgen
Hier mein Code:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin Image1.Left:=Round(X - Image1.Width / 2); Image1.Top:=Round(Y - Image1.Height / 2); end; |
Re: Image dem Mousezeiger folgen
du musst natürlich bedenken, dass du wenn du dich mit dem mauszeiger über dem image befindest,
nicht das mousemove event des forms auftritt sondern das mousemove event des images. musst du unbedingt ein timage verwenden? mal doch im onformpaint event das bild selber per form.canvas.draw() oder spricht da was gegen? |
Re: Image dem Mousezeiger folgen
Hallo,
ich brauche unbedingt ein Image. |
Re: Image dem Mousezeiger folgen
Hi,
die Komponente TApplicationEvents habe ich genommen und dort im Event onMessage folgenden Code eingefügt:
Delphi-Quellcode:
Dann ging es bei mir.
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin if Msg.message= Messages.WM_MOUSEMOVE then begin Image1.Left:=Round(ScreenToClient(Mouse.CursorPos).X - Image1.Width / 2);//Image1.Picture.Graphic.Width Image1.Top:=Round(ScreenToClient(Mouse.CursorPos).Y - Image1.Height / 2);//Image1.Picture.Graphic.Height end; end; |
Re: Image dem Mousezeiger folgen
und wer es ganz ohne komponenten mag:
Delphi-Quellcode:
unit frmMain;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } procedure MessageEventHandler(var Msg: TMsg; var Handled: Boolean); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := MessageEventHandler; end; procedure TForm1.MessageEventHandler(var Msg: TMsg; var Handled: Boolean); begin case Msg.message of WM_MOUSEMOVE: begin Invalidate(); end; WM_PAINT: begin Image1.Left := Round(ScreenToClient(Mouse.CursorPos).X - Image1.Width / 2); Image1.Top := Round(ScreenToClient(Mouse.CursorPos).Y - Image1.Height / 2); end; end; end; |
Re: Image dem Mousezeiger folgen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz