Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Button mit Maus verschieben (https://www.delphipraxis.net/82982-button-mit-maus-verschieben.html)

Alexander Roth 24. Dez 2006 09:03

Re: Button mit Maus verschieben
 
So wie ich das verstehe, werden beim createn die ereignisse von form1 und button auf Methoden dieser Klasse umgeleitet und die eigenschaften (left, top) der Komp werden entsprechend verändert.

Gruß Alexander

Nils_13 24. Dez 2006 09:09

Re: Button mit Maus verschieben
 
Hm...ich habe einfach alles abkopiert, um es zu testen, aber bei mir wird bei genau dem gleichen Code nur die Form verschoben, sonst nichts.

Mazel 24. Dez 2006 09:58

Re: Button mit Maus verschieben
 
Hallo,

also wesentlich einfacher geht es so, wenn ich dein Bedürfnis richtig verstanden habe:

Delphi-Quellcode:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  //Fängt alle Mausereignisse ab
  ReleaseCapture;
  // mit TWinCotrol verschieben, $F012 verschiebt den Button
  TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
end;
Gruß
Mazel

Nils_13 24. Dez 2006 12:33

Re: Button mit Maus verschieben
 
Hey, das funktioniert ja richtig gut :) Kann man eigentlich noch was direktes für die Größenveränderung machen (6 Punkte und damit rezisen) ?

Mazel 24. Dez 2006 12:42

Re: Button mit Maus verschieben
 
Jo, das geht auch:

Statt $F012 kannst du folgende Werte verwenden:

$F001 - ändert Größe nach Links
$F002 - ändert Größe nach Rechts
$F003 - ändert Größe nach Oben
$F006 - ändert Größe nach Unten

$F004 - ändert Größe nach Links, Oben
$F005 - ändert Größe nach Rechts, Oben
$F007 - ändert Größe nach Links, Unten
$F008 - ändert Größe nach Rechts, Unten

Gruß
Mazel

delphi_help 26. Dez 2006 11:57

Re: Button mit Maus verschieben
 
Also, kann man das ganze auch mit OnMouseMover machen, außerdem: wie kann man den Button denn verschieben, ohne auf die Maus zu klicken, es soll eher fü eine Art Spiel (ähnlich wie Magnoid) werden.

Danke

_frank_ 26. Dez 2006 18:14

Re: Button mit Maus verschieben
 
wenn du es ähnlich dem Editor aus der Delphi-IDE machen willst, versuch mal TSizeCtrl von http://angusj.com/delphi/
die Komponente hab ich in meinem DFM-Editor verwendet und funktioniert sehr gut. Ich bin niemand der für jedes kleine Problem eine Komponente installiert, aber diese nimmt einem sehr viel Arbeit ab...

HTH Frank

platan1 23. Mär 2007 22:03

Re: Button mit Maus verschieben
 
Hallo

Suche schon länger nach einer einfachen Art Komponenten zur Laufzeit zu verschieben.
Hab das hier zufällig entdeckt, und es funct super.
Aber ist es möglich das normales Klick Ereignis des Buttons zu kriegen, und erst
wenn man die Maus mit gedrücker li. Taste zb. 5 Pixel bewegt, der Button verschoben wird.
Und das man das beliebig oft wiederholen kann.

Danke mfG.

Cyberbob 24. Mär 2007 01:23

Re: Button mit Maus verschieben
 
Joa, damit kann man alle Komponeten verschieben. Buttons, Panles, Forms. Einfach genial.
Sowas kann man immer mal verwenden.

cruiser 24. Mär 2007 01:46

Re: Button mit Maus verschieben
 
Edit: Das war wohl nix...

@Platan: fang on MouseDown ab, merk dir die Koordinate und verrechne die Koordinate von OnMouseMove damit


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz