AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mausposition in Paintbox
Thema durchsuchen
Ansicht
Themen-Optionen

Mausposition in Paintbox

Ein Thema von Spurius · begonnen am 11. Jul 2004 · letzter Beitrag vom 11. Jul 2004
Antwort Antwort
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#1

Mausposition in Paintbox

  Alt 11. Jul 2004, 11:11
Hallo,
wie kann ich in einer Paintbox die Mausposition herausbekommen?
Gruß
Spurius
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:15
einfach das mouseMove-event der PaintBox verwenden!
darin dann die x und y koordinate ausgeben lassen:


Code:
procedure TTestform.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  Caption := IntToStr(X) + ' *** ' + IntToStr(Y);
end;
  Mit Zitat antworten Zitat
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#3

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:19
Und wie geht das wenn ich die Mausposition beim OnClick Ereignis herausbekommen will?
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:22
dann verwendest du die im OnMouseMove ermittelten Koordinaten trotzdem und deklarierst diese als private Variablen des Forms. Beim OnClick-Event klannst du dann diese ganz einfach verwenden

Code:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PaintBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    xPos,
    yPos: Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  xPos := X;
  yPos := Y;
end;


procedure TForm1.PaintBox1Click(Sender: TObject);
begin
  Caption := IntToStr(xPos) + ' *** ' + IntToStr(yPos);
end;

end.


wobei du aber auch eine Variable vom Typ TPoint verwenden kannst:

deklaration: anstatt xPos,yPos: Integer --> pt: TPoint;

und anstatt Caption := IntToStr(xPos) + ' *** ' + IntToStr(yPos);
--> Caption := IntToStr(pt.X) + ' *** ' + IntToStr(pt.Y);
  Mit Zitat antworten Zitat
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#5

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:26
Ok, vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:33
Meiner Meinung nach wäre das der effizientere Weg:

Delphi-Quellcode:
procedure TForm1.PaintBox1Click(Sender: TObject);
var Pos:TPoint;
begin
Pos:=Mouse.CursorPos;
showmessage(inttostr(pos.X));
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:38
Zitat von atreju2oo0:
Meiner Meinung nach wäre das der effizientere Weg:...
Damit bekommst Du abe die Koordinaten des Cursors auf dem Desktop und nicht die relativen der Painbox.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 11:43
Shit... stimmt...
Bei meinem Prog war eh fullscreen und da ist das nicht aufgefallen...
Da hätt ich mich beim nächsten mal wider sau geärgert...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#9

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 13:11


Die PaintBox hätte sonst auch nocht OnMouseDown

mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Mausposition in Paintbox

  Alt 11. Jul 2004, 16:36
Moin!

Und zu bevorzugen wäre OnMouseUp - weil bei Windows kann man auch einen Button drücken und es sich trotzdem vor dem Loslassen der Maustaste es nochmal überlegen und mit dem Cursor ausserhalb des Buttons fahren und dort loslassen - dann wird der Click auch nicht ausgelöst. Ausserdem hat man in dem folgenden Code von MouseUp nicht das Problem wie in MouseDown, das die Maus noch gedrückt ist im folgenden, was z.B. wieder neue Aktionen auslösen kann.

Und zu der Mouse.Pos Sache: Nutzt ClientToScreen() bzw. ScreenToClient() der Komponente um die Koordinaten umrechnen zu lassen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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