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 nochmal mousemove (https://www.delphipraxis.net/113640-nochmal-mousemove.html)

Tschief 12. Mai 2008 00:33


nochmal mousemove
 
Hallo!

Ich bin absoluter Delphi-Neuling und hätte eine Frage zu dem schon oft behandelten Thema mousemove

Ich wäre froh wenn mir jemand einen Hinweis geben könnte wieso die Koordinaten des Mauszeigers beim Drücken auf den Button in den beiden Labels angezeigt werden und beim "Mousemove" nicht. Sollte nicht bei jeder Bewegung der Maus die aktuellen Koordinaten in die Label 3 und 4 geschrieben werden?

Schonmal Vielen Dank!

Delphi-Quellcode:
unit Mauskoordinaten;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var
P: TPoint;

begin
  GetCursorPos(P);
  Label3.Caption := 'X: ' + InttoStr(P.x);
  Label4.Caption := 'Y: ' + InttoStr(P.y);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
P: TPoint;

begin
  GetCursorPos(P);
  Label1.Caption := 'X: ' + InttoStr(P.x);
  Label2.Caption := 'Y: ' + InttoStr(P.y);
end;

end.

Die Muhkuh 12. Mai 2008 00:43

Re: nochmal mousemove
 
Hi und herzlich Willkommen, Tschief!

Solange Du mit der Maus auf der Form bist, sollte es einwandfrei funktionieren. Außerhalb der Form funktioniert das natürlich nicht mehr.

Mit Form meine ich wirklich Deine Form. Wenn Du über einem Button, einem Label etc. pp. bist, funktioniert das ganze auch nicht mehr.

Du könntest es aber z.B. per Timer alle 100ms abfragen.

Tschief 12. Mai 2008 01:00

Re: nochmal mousemove
 
Danke für die Begrüßung und die schnelle Antwort!

Ich probier das ja nun hin und wieder seit ein paar Tagen schon in den verschiedensten Varianten aber mousemove funktioniert einfach nicht.

Vielleicht sollte ich noch etwas zu meiner Softwareaustattung sagen...?
Habe hier 2 verschiedene Rechner mit Delphi 7 Personal Edition und habe mir heute extra die CodeGear™ Delphi® 2007 für Win32® 30-Tage-Testversion installiert um auszuschließen, daß es an der Personal Edition liegt.
Aber auf keinem der beiden Rechner und auf keiner der beiden Delphi-Versionen funktioniert mousemove...

Könnte es an irgendeiner fehlenden Unit liegen? Aber dann würde Delphi ja sicher beim kompilieren meckern?

Dann werd ich das mal mit dem Timer probieren. Vielleicht kann der da was erzwingen.

Die Muhkuh 12. Mai 2008 01:02

Re: nochmal mousemove
 
Hi,

Du willst nur die Position der Maus in ein Label schreiben? Egal wo sich die Maus befindet?

[edit]Hast Du das Ereignis überhaupt der Form zugewiesen?[/edit]

Tschief 12. Mai 2008 01:12

Re: nochmal mousemove
 
Zitat:

Zitat von Die Muhkuh
[edit]Hast Du das Ereignis überhaupt der Form zugewiesen?[/edit]

Vielen Dank!!!

Wie gesagt...
Blutiger Anfänger!


Also ich hab schon noch mehr mit den Mauskoordinaten vor aber zuerst mußte ich ja mal sehen, daß ich die überhaupt bekomme.

Die Muhkuh 12. Mai 2008 01:13

Re: nochmal mousemove
 
Macht nichts, passiert. :zwinker:


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