Acceptation des éléments à déplacer
Remonter à Manipulation des contrôles - Index
Quand l'utilisateur fait glisser quelque chose sur un contrôle, celui-ci reçoit un événement OnDragOver. Il doit alors indiquer s'il peut accepter l'élément dans le cas où l'utilisateur le lâcherait à cet emplacement. L'aspect du curseur change pour indiquer si le contrôle peut accepter l'élément que l'utilisateur fait glisser. Pour accepter les éléments que l'utilisateur fait glisser sur un contrôle, attachez un gestionnaire à l'événement OnDragOver du contrôle.
L'événement "glisser-dessus" a un paramètre appelé Accept que le gestionnaire d'événement peut définir à True pour indiquer qu'il accepte l'élément. Accept change le type de curseur en curseur d'acceptation ou pas.
L'événement "glisser-dessus" présente d'autres paramètres, dont la source de l'opération glisser et l'emplacement actuel du curseur de la souris, que le gestionnaire d'événement peut utiliser pour déterminer s'il doit accepter le déplacement. Dans l'exemple VCL ci-dessous, une arborescence de répertoires accepte les objets déplacés seulement s'ils viennent d'une boîte liste de fichiers.
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)))
Accept = true;
}