DragAndDrop-Event aus dem Code raus aufrufen



  • Hallo,

    ich habe ca. 16 verschiedene Objekte vom Typ TImage auf meinem Formular.
    Ein DrawGrid setze ich bewusst nicht ein!
    Die Objekte hab ich alle ein einem Array gespeichert und möchte jetzt
    die OnDragOver und OnDragDrop-Ereignisse in einer Schleife abhandeln.

    Wenn ich für jedes Objekt die Funktion im Objektinspektor nutze, müsste
    ich 32 mal die gleiche Routine schreiben, soweit zur Erklärung.

    Bisher sieht es so aus:

    TImage *zeile[4][4] = { .......}
    for (int z_counter = 0; z_counter < anzahlZeilen; z_counter++)
    {
       for (int s_counter = 0; s_counter < anzahlSpalten; s_counter++)
       {
           (*zeile[z_counter][s_counter]).OnDragDrop(??????);
       } 
    }
    

    Die Borland Hilfe sagt mir dazu:

    Das Ereignis OnDragDrop wird beim Ablegen eines gezogenes Objekt ausgelöst.

    typedef void __fastcall (__closure *TDragDropEvent)
    (System::TObject* Sender, System::TObject* Source, int X, int Y);
    __property TDragDropEvent OnDragDrop = {read=FOnDragDrop, write=FOnDragDrop};
    

    Beschreibung

    In der Ereignisbehandlungsroutine für OnDragDrop können Sie festlegen, welche Aktion ausgeführt wird, wenn der Benutzer ein Objekt ablegt. Der
    Parameter Source gibt betreffende Objekt und Sender das Steuerelement an, auf
    dem es abgelegt wird. Die Parameter X und Y sind die Koordinaten des
    auszeigers im Steuerelement.

    Damit kann ich jetzt überhaupt nichts anfangen, und das Beispiel ist mit dem
    ObjektInspektor zusammen geklickt 😞
    Da sieht der Aufruf wieder anders aus als wie der den ich benötige (denke ich zumindest).

    Hat jemand schon mal so einen Aufruf programmiert?



  • Siehe FAQ, unter 'Komponenten' ("Sendernamen identifizieren" und "Zugriff nicht über Namen").



  • Hallo,

    tut mir leid das ich mit meiner Antwort erst jetzt daherkomm. Am Freitag hab
    ich's nicht mehr geschafft. Vielen Dank für den Hinweis. Ich hab eine FAQ auf der Startseite gesucht und nicht im Forum geschaut.

    Bis zum nächsten mal!


Anmelden zum Antworten