Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einen Button zur aktuellen Mausposition setzen (https://www.delphipraxis.net/57062-einen-button-zur-aktuellen-mausposition-setzen.html)

commandah 15. Nov 2005 10:57


Einen Button zur aktuellen Mausposition setzen
 
Guten Morgen, kann mir zufällig jemand von euch sagen, wie ich es hinbekommen kann, das ein Button bei der aktuellen Mausposition auftaucht?

Ich hatte es so gemacht:

Delphi-Quellcode:
button1.Left:=mouse.CursorPos.x;
button1.Top:=mouse.CursorPos.y;

allerdings geht das so nur wenn das Fenster maximiert ist. Hat da zufällig jemand eine Bessere Idee?

Tigermoon 15. Nov 2005 11:05

Re: Einen Button zur aktuellen Mausposition setzen
 
ich würde sagen frag zuerst ab ob dein cursor auch in deinem fenster ist
kannst du ja über Height und Wight machen
dann sag wenn er im fenster ist zeige ihn an
dann müßte es auch mit kleineren fenstern gehen

Tigermoon

Angel4585 15. Nov 2005 11:08

Re: Einen Button zur aktuellen Mausposition setzen
 
Delphi-Quellcode:
button1.Left:=mouse.CursorPos.x-Form1.Left;
button1.Top:=mouse.CursorPos.y-Form1.Top;
mal so aus dem Bauch heraus
:angel:

Robert Marquardt 15. Nov 2005 11:10

Re: Einen Button zur aktuellen Mausposition setzen
 
Mouse.CursorPos rechnet in Bildschirmkoordinaten waehrend Left und Top einer Komponente relativ zum Parent sind.
Zum Umrechnen gibt es die Methode ScreenToClient. Man muss natuerlich ScreenToClient des Parents des Buttons benutzen.
Der Button wuerde ja auf sich selbst umrechnen.

commandah 15. Nov 2005 11:13

Re: Einen Button zur aktuellen Mausposition setzen
 
:oops: peinlich
Delphi-Quellcode:
button1.Left:=mouse.CursorPos.x-Form1.Left;
button1.Top:=mouse.CursorPos.y-Form1.Top;
hat gereicht :wall: da hätte ich auch drauf kommen können

Sharky 15. Nov 2005 11:16

Re: Einen Button zur aktuellen Mausposition setzen
 
Hai commandah,

unter welchen Bedingungen soll der Button den "verschoben" werden? Wenn Du einfach das OnMouseDown deiner Form nimmst müsste es so gehen:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  btn_Button1.Left := X;
  btn_Button1.Top := y;
end;

Schubi 15. Nov 2005 11:17

Re: Einen Button zur aktuellen Mausposition setzen
 
wenn du nur die fesnterkoordinaten abziehst, stimmt es aber noch net ganz. sauber wäre screentoclient!

Angel4585 15. Nov 2005 11:30

Re: Einen Button zur aktuellen Mausposition setzen
 
Wenns ihm reicht dann reichts auch! basta pff :warn:

Sharky 15. Nov 2005 11:34

Re: Einen Button zur aktuellen Mausposition setzen
 
Zitat:

Zitat von Angel4585
Wenns ihm reicht dann reichts auch! basta pff :warn:

Hey,

passe mal bitte deinen Ton den gepflegenheiten der DP an. Sonst mache ich mal :warn:

Angel4585 15. Nov 2005 11:39

Re: Einen Button zur aktuellen Mausposition setzen
 
:roll:
@ALL

Sorry, bin grad bissl genervt. Hab bei ner Form fsStayOnTop drin aber die macht das einfach nicht. :wall:

Habs:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
in das onDeactivate und es funzt

:party:


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