Çeviri: Ramazan Gülbahar.
TListView Sürükle Bırak ile Birden Fazla Nesneyi Yeniden Düzenlemek
Çoğu MP3 (ya da herhangi bir multimedia) oynatıcı aşşağıdaki kodu kullanarak çalma listesini düzenlemeye olanak verir.
TlistView İle Birden Fazla Nesneyi Sürükle Bırak
Formun OnCreate olayında, ListView çoklu nesne seçimi ayarlanır, görünüş sitili report olarak ayarlanır, satır seçimi ayarlanır(enable row selection) ve otomatik sürükle özelliği verilir(automatic dragging).
ListView için OnDragOver, sadece belirtilen Source = Sender objesine uygun olanları kabul edecek.
OnDragDrop seçili nesnelerde olacak değişiklikleri ve yerlerini belirliyecek.
Form.OnCreate
Kod: Tümünü seç
procedure TListViewForm.FormCreate(Sender: TObject) ;
begin
ListView1.DragMode := dmAutomatic;
ListView1.RowSelect := true;
ListView1.MultiSelect := true;
ListView1.ViewStyle := vsReport;
end;
Kod: Tümünü seç
procedure TListViewForm.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer) ;
var
currentItem, nextItem, dragItem, dropItem : TListItem;
begin
if Sender = Source then
begin
with TListView(Sender) do
begin
dropItem := GetItemAt(X, Y) ;
currentItem := Selected;
while currentItem <> nil do
begin
nextItem := GetNextItem(currentItem, SdAll, [IsSelected]) ;
if Assigned(dropItem) then
dragItem := Items.Insert(dropItem.Index)
else
dragItem := Items.Add;
dragItem.Assign(currentItem) ;
currentItem.Free;
currentItem := nextItem;
end;
end;
end;
end;
Kod: Tümünü seç
procedure TListViewForm.ListView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean) ;
begin
Accept := Sender = ListView1;
end;