Drag'n'Drop



  • Hallo

    Folgendes Problem ich will das 2 verschiedene Objekte DnD Fähig seien sollen, wobei das Objekt dynamisch erzeugt(RichEdit) und das andere von anfang an. Ich hab es nur hingekriegt die komplette Form DnD Fähig zu machen denn wenn ich über DragAcceptFile eine andere Komponente nehme passiert nichts mehr

    hier der Code:

    void __fastcall TForm1::FormShow(TObject *Sender)
    
        DragAcceptFiles(Form1->Handle,true);// so funktionierts
        DragAcceptFiles(PageControl1->Handle,true);// funktionierts nicht
        //beides wurde einzeln getetested
    

    Implementierung des Message Handlers

    void __fastcall TForm1::WmDropFiles(TWMDropFiles& Message)
    {
        int icount = PageControl1->ActivePage->TabIndex;
        char buff[MAX_PATH];
    
        // Anzahl der Dateien bestimmen:
        int numFiles = DragQueryFile((HDROP)Message.Drop,-1,  NULL, NULL);
        for (int i=0;i<numFiles;i++)
        {
            DragQueryFile((HDROP)Message.Drop, i, buff, sizeof(buff));
            KarteiKarte[icount]->Caption=ExtractFileName(buff);
            EingabeFeld[icount]->Lines->LoadFromFile(buff);
        }
    }
    

    Ich schätze ich muss die Message auswerten so wie
    if(Message==PageControl1)

    und wie kann ich dynamich festlegen mit DragAcceptFile.



  • Hi,

    Hast du für das PageControl1 auch ein MessageHandler ? Reagierst du auf die Ereignisse, welche mit DragDrop zu tun hat ?

    im Ereigniss OnDragOver kannst du Aceppt auf true setzen. Im Ereignis OnDragDrop kannst du die Implementierung umsetzen...

    Weitere Infos findet man in der Hilfe zum Thema Drag&Drop


Anmelden zum Antworten