Por si sirve a alguien..
Para un listbox o u Treeview;
Código Delphi
[-]
procedure TForm11.btn1DragDrop(Sender, Source: TObject; X, Y: Integer);
var a:string;
begin
if Source is TlistBox then
begin
(Sender as TButton).Caption :=
(Source as TListBox).Items[(Source as TListBox).ItemIndex];
end;
if Source is TTreeview then
(Sender as TButton).Caption :=
(Source as TTreeView).Selected.Text;
end;