Drag and Drop in Firemonkey



  • Hallo zusammen

    Vielleicht hat jemand von euch schon mal sowas gemacht und kann mir zeigen wie sowas geht.

    Ich möchte unter Firemonkey und Android eine Drag und Drop Funktionalität erstellen. Aus der Hilfe habe ich folgendes gefunden und bisher umgesetzt.

    void __fastcall Tfrm_main::img_einsMouseEnter(TObject *Sender)
    {
    	TImage * bild = (TImage *) Sender;
    
      TDragObject objekt;
    	objekt.Source = Sender;
    	objekt.Data = bild->MakeScreenshot();
    }
    

    Der Code funktioniert aber macht einfach nichts. Sprich ich kann das Bild nicht auf dem Bildschirm verschieben.

    Weiss jemand was man machen muss, damit man ein Objekt auf dem Bildschirm bewegen kann.

    Gruss Renato



  • Hi Robbiani,

    Du wertest ja auch nur MouseEnter aus. Also nix mi drag and drop.
    Zumindest gibt es begindrag und enddrag. Obs noch eine funktion fürs eigentliche ziehen gibt weiß ich nicht. Bei begindrag Mauskoordinaten und Bildkoordinaten merken und beim ziehen die Bildkoordinaten um die Mausdifferenz verschieben. Wens keine spezielle dragfunktion gibt must Du bei Begindrag einen Schalter setzen und bei Enddrag löschen. Dann bei onmousemove das bild verschieben wenn Schalter gesetzt.
    Wenn gar keine dragfunktionen da sind mi mousedown,mouseup und mousemove arbeiten und ggf noch MouseEnter und Mouseleave auswerten.

    Gruß Mümmel



  • Für das eigentliche Ziehen gibt es (wie bei der VCL) das DragOver Ereignis:

    http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Controls.TControl.DragOver

    ...was hier, wie die Übergabeparameter zeigen, allerdings etwas anders funktioniert als bei der VCL.


Anmelden zum Antworten