Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Position eines Buttons bestimmen und verändern


is44c - Fr 23.12.05 21:57
Titel: Position eines Buttons bestimmen und verändern
Moin,

ich habe mir mal gedacht ich versuche ein MouseMove ereigniss zu basteln, wobei, wenn ich mit der maus über button gehe, das dieser unter dem mauszeiger herausspringt und an einer neuen Position bleibt!

Ich habe keine ideen da ich unter eigenschaften nichts finde was mit Postion zu tun hat oder ich kann nur nicht gut genug suchen!

Danke für die antworten die kommen!
Is44c


Christian S. - Fr 23.12.05 22:00

Hallo!

Die Position eines Buttons kannst Du mittels Top und Left abfragen bzw. auch setzen.

Grüße
Christian


UGrohne - Fr 23.12.05 22:00

Es gibt das Event OnMouseMove bei den Buttons. Dieses wird ausgelöst, sobald sich der Mauszeiger über dem Button bewegt. Hier erfährst Du also wenn der Zeiger auf dem Button ist. In diesem Event kannst Du ihn dann verschieben, indem Du die Eigenschaften Top und Left (die den Abstand vom oberen und linken Rand des ParentControls - also hier des Formulars - in Pixeln angeben) veränderst.


is44c - Fr 23.12.05 22:59

Also ich habe das jetzt so versucht


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Test(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 Left := 400;
 Top := 333
end;


aber wenn ich das mache dann springt die ganze TForm und nciht nur der Button auf der Form!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Born-to-Frag - Fr 23.12.05 23:01

user profile iconis44c hat folgendes geschrieben:
Also ich habe das jetzt so versucht


Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Test(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 Button1.Left := 400;
 Button1.Top := 333
end;


aber wenn ich das mache dann springt die ganze TForm und nciht nur der Button auf der Form!


;)


Corback - Di 18.04.06 15:54

also ich habe das jetzt auch so probiert und der Button spring ja auch prima weg, nur leider springt er nur einmal weg und dann bleibt er stehen. was muss ich hier Einsetzen damit der Button mehrmals wegspringt?

mfg Corback


DelphiAnfänger - Di 18.04.06 15:58


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Test(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 Button1.Left := Random(400);
 Button1.Top := Random(333);
end;


Corback - Di 18.04.06 16:00

danke

jetzt funktionierts einwandfrei ;)