Image auf der Form umherschieben



  • Ich hatte vor per Drag&Drop eine Image innerhalb der Form umherzuschieben.

    Mein Ansatz ist wohl doch ein bisschen zu einfach.

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Image1DragDrop(TObject *Sender, TObject *Source,
          int X, int Y)
    {
      Image1->Top = Y;
      Image1->Left = X;
    }
    //---------------------------------------------------------------------------
    

    Die Suchfunktion hat nichts ergeben.
    Wie macht man sowas?



  • Hi,

    nimm besser das Ereignis MouseMove, da bekommst du ja auch die Maus-Koordinaten.

    Dazu bei MouseDown einen Boolschen Wert auf true setzen, der im MouseMove abgefragt wird. Der Bool ist bei MouseUp wieder false.

    mfg
    kpeter



  • Jo ist echt besser. Hier der Code für die anderen:

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Image1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
      Dragging = true;
      DragX = X;
      DragY = Y;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
      if(Dragging)
      {
        Image1->Left += X - DragX;
        Image1->Top += Y - DragY;
      }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
      Dragging = false;
    }
    //---------------------------------------------------------------------------
    

    Vielen dank.


Anmelden zum Antworten