Formlar arası listview drag drop

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Formlar arası listview drag drop

Mesaj gönderen Serhat »

Selam;


Elime eskiden kullandığım aynı form içinde listview1 den listview2 ye sürükle bırak işlem yaptıra biliyordum, şimdi formlar arası kullanabileceğim hale bu kodları nasıl getirebilirim veya bu işlemi yapan kod paylaşımı yapılırsa çok memnun olurum...

Kod: Tümünü seç

procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  I: integer;
  CurrentItem, nextItem, dragItem, dropItem: TListItem;
begin
  if (Sender is TListView) and (Source is TListView) then
  begin
    dropItem := TListView(Sender).GetItemAt(X, Y);
    CurrentItem := TListView(Source).Selected;
    While Assigned(CurrentItem) Do
    begin
      nextItem := TListView(Source).GetNextItem(CurrentItem, SdAll,
        [IsSelected]);
      if Assigned(dropItem) then
        dragItem := TListView(Sender).Items.Insert(dropItem.Index)
      else
        dragItem := TListView(Sender).Items.Add;
      dragItem.Assign(CurrentItem);
      if (Source = Sender) then
        CurrentItem.Free; // Satır Kopyalama iptali
      CurrentItem := nextItem;
      for i := 0 to ListView1.Items.Count - 1 do
      begin
        ListView1.Items.BeginUpdate;
        ListView1.Items.Item[i].Checked := False;
        ListView1.Items[i].Caption := IntToStr(i + 1); // Sıra No
            ListView1.Items.EndUpdate;
      end;
    end;
  end;
end;

Kod: Tümünü seç

procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if (Source is TListView) then
  begin
    Accept := True;
  end;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Formlar arası listview drag drop

Mesaj gönderen mrmarman »

Deneyin ve bu verdiğiniz kod ile ezbere yapmayın lütfen.
Zaten aynı proje içindeki formlar birbirinden gelen dragdrop isteklerini kabul ederler.
Basit bir proje oluşturun iki form ekleyin bu formlara da birer TListView. Sonra bunlar arasında taşımayı deneyin çalışacaktır.
Resim
Resim ....Resim
Cevapla