Shape an Position bewegen
-
Hallo zusammen,
ich möchte ein Shape anklicken und mit meiner Maus an eine andere Position verschieben. Kann ich das überhaupt mit einem Shape machen? Ich habe es schon mit MouseMove probiert, allerdings war das nicht das was ich gesucht habe!? Oder lag ich damit doch richtig?

Kann mir jemand weiter helfen!
Danke schon mal!
Gruß
-
Hallo Eleonora,
versuch es mal mit den Ereignissen OnMouseDown() und OnMouseUp(). Bei diesen Ereignissen werden Dir die Koordinaten der Mausklicks übergeben. Differenz bilden und schon weißt Du, um wieviel Pixel Du die Shape verschieben mußt.
Beispielsweise:
// Header private: // Anwender-Deklarationen int xpos, ypos; bool move_shape; // CPP __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { xpos = ypos = 0; move_shape = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Shape1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft) { xpos = X; ypos = Y; move_shape = true; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Shape1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft) { Shape1->Left = Shape1->Left + (X - xpos); Shape1->Top = Shape1->Top + (Y - ypos); move_shape = false; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Shape1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (move_shape) { Shape1->Left = Shape1->Left + (X - xpos); Shape1->Top = Shape1->Top + (Y - ypos); } } //---------------------------------------------------------------------------Grüße
-
Hallo Joe_M.
das ist genau das was ich gesucht habe. Ich habe es auch schon eingebaut, und es funktioniert! Juhu!!

Danke noch mal!
Gruß Eleonora
-
Ich darf nochmal auf den entsprechenden FAQ-Beitrag im Abschnitt "Forms" hinweisen ...