Gezogene Elemente akzeptieren
Nach oben zu Mit Steuerelementen arbeiten - Index
Wenn der Benutzer ein Objekt über ein Steuerelement zieht, wird für dieses Steuerelement ein OnDragOver-Ereignis ausgelöst. Das Steuerelement muss nun entscheiden, ob es das Objekt akzeptiert. Ist dies der Fall, ändert sich die Form des Mauszeigers. Um Objekte zu akzeptieren, die über ein Steuerelement gezogen werden, erstellen Sie für dessen Ereignis OnDragOver eine Behandlungsroutine.
Das OnDragOver-Ereignis verfügt über den Parameter Accept, den die Ereignisbehandlungsroutine auf True setzen kann, wenn das Element akzeptiert wird. Accept ändert den Cursortyp in einen akzeptierenden Cursor oder nicht.
Das DragOver-Ereignis besitzt andere Parameter, welche die Quelle der Drag-Operation und die aktuelle Position des Cursors angeben. Die Ereignisbehandlungsroutine kann mithilfe dieser Parameter bestimmen, ob das gezogene Element angenommen wird. Im folgenden VCL-Beispiel können in einem Verzeichnisdiagramm nur Objekte abgelegt werden, die aus einer Dateiliste stammen:
procedure TFMForm.DirectoryOutline1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if Source is TFileListBox then
Accept := True
else
Accept := False;
end;
void __fastcall TForm1::TreeView1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
if (Source->InheritsFrom(__classid(TFileListBox)))
}