Autor Beitrag
Soapy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 16:47 
Also ich habe das Problem, dass ich die Mauskoordinaten herausfinden will.
Es soll automatisch die neuen Koordinaten der Maus in zwei Labels schreiben!
Genau so wie bei Bildbearbeitungsprogrammen, bei denen unten die Koordinaten angezeigt werden!

Mein Versuch sah bis jetzt so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TLineareFunktionen.KoordinatensystemClick(Sender: TObject);
var X,Y : Integer;
begin
   x:= ScreenToClient(Mouse.CursorPos).X;
   y:= ScreenToClient(Mouse.CursorPos).Y;
   X := X - 8 - (Koordinatensystem.ClientWidth div 2);
   Y := Y - 67 - (Koordinatensystem.ClientHeight div 2);
   Label1.Caption := IntToStr(X);
   Label2.Caption := IntToStr(Y);
end;



Klappt einwandfrei, sollte aber noch automatisch bei einer Mausbewegung und nicht bei einem Mausklick die Koordinaten in die Labels schreiben!

Kann mir da jemand helfen?
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 16:50 
Schau dir mal die ereignisse

OnMouseMove (reagiert auf bewegung der maus)
OnMouseUp (reagiert auf loslassen der maustaste)
OnMouseDown (reagiert auf drüchen der maustaste)
an
OnMouseWheel reagiert aufs scrollrad.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Fr 28.12.07 16:53 
Dazu noch was: OnMouseLeave (Beim Verlassen).
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Fr 28.12.07 16:56 
Hab ich schon!

Hier ist mal der Quelltext:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TLineareFunktionen.FormMouseMove(Sender: TObject;Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
x:= ScreenToClient(Mouse.CursorPos).X;
   y:= ScreenToClient(Mouse.CursorPos).Y;
   X := X - 8 - (Koordinatensystem.ClientWidth div 2);
   Y := Y - 67 - (Koordinatensystem.ClientHeight div 2);
   Label1.Caption := IntToStr(X);
   Label2.Caption := IntToStr(Y);
end;



Was mach ich falsch?
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Fr 28.12.07 19:32 
Du benutzt X,Y die bereits in der procedure übergeben werden.
Diese kannste aber nicht ändern da sie nicht als var übergeben werden.

ausserdem könntest du X,y direkt von deiner Form verwenden und bräuchtest dazu auch nicht mehr rummrechnen.

entweder so, dann bekommst die aktuelle position
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TLineareFunktionen.FormMouseMove(Sender: TObject;Button: TMouseButton;  
Shift: TShiftState; X, Y: Integer);  
begin  
//  x:= ScreenToClient(Mouse.CursorPos).X;  
//   y:= ScreenToClient(Mouse.CursorPos).Y;  
//   X := X - 8 - (Koordinatensystem.ClientWidth div 2);  
//   Y := Y - 67 - (Koordinatensystem.ClientHeight div 2);  
   Label1.Caption := IntToStr(X);  
   Label2.Caption := IntToStr(Y);  
end;


oder so, wenn du selbst noch mit den koords rechnen willst

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TLineareFunktionen.FormMouseMove(Sender: TObject;Button: TMouseButton;  
Shift: TShiftState; X, Y: Integer); 
var
  MyX,MyY : integer´;
begin  
   MyX := X - 8 - (Koordinatensystem.ClientWidth div 2);  //berechnung ans kordsys anpassen
   MyY := Y - 67 - (Koordinatensystem.ClientHeight div 2);  //berechnung ans koordsys anpassen
   Label1.Caption := IntToStr(MyX);  
   Label2.Caption := IntToStr(MyY);  
end;

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 28.12.07 19:57 
Wohl kann man die ändern, es wird nur nicht nach außen gegeben. Nur bei Const kann man sie nicht ändern.


Zu erfahren, was nicht geht wäre auch noch schön.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.