Drag 'n' drop de l'explorateur vers une listview

Contenu du snippet

Ceci est a moitié de moi.

Le but est de recuperer un message envoyé par Windows.

Source / Exemple :


type procedure DropMsg(var msg: TWMDropFiles); message WM_DROPFILES;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Self.Handle,True);
end;

procedure TMainForm.DropMsg(var msg: TWMDropFiles);
var
  FileNbr, i: Integer;
  FileName: String;
  Files: Array[0..255] of Char;
  ListItem: TListItem;

begin
  FileNbr:= DragQueryFile(Msg.Drop, $FFFFFFFF, Files, SizeOf(FileName));
  for i:=0 to FileNbr-1 do
  begin
    FileName:=copy(Files, 0, DragQueryFile(Msg.Drop, i, Files, 255));
    ListItem:=ListView.Items.Add;
    ListItem.Caption:=ExtractFileName(FileName); //Column 0 - Nom
    ListItem.SubItems.Add(FileName); //Column 1 - Origine
  end;
  Msg.Result:=0;
  DragFinish(msg.Drop);
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DragAcceptFiles(Self.Handle, False); 
end;

Conclusion :


Le ViewStyle de la ListView est en vsReport (cf Inspecteur d'objets)
J'ai pas cherché encor pour recuperer les icones, c'est pour bientot j'espere.
Je mettrais un zip complet des ke j'ai c ca.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.