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!