Listview insert

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Listview insert

Mesaj gönderen hido »

Selam, Listview de satır veya satırları kopyalama işleminde sorunsuz kopyalama yapıyorum fakat kopyalanan satır lisview en alta ekliyor insert olayını nasıl yapa bilirim,
yaklaşık 500 satır olunca sıkıntı oluşuyor en alttan üste taşımada...

Kod: Tümünü seç

procedure TForm1.KopyalaClick(Sender: TObject);
var
  i: Integer;
begin
  for i := ListView1.Items.Count - 1 downto 0 do
    if ListView1.Items[i].Checked then
    begin
      ListView1.Items.Add.Assign(ListView1.Items[i]);
    end;
end;
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Listview insert

Mesaj gönderen xxxjedixxx »

Merhaba,
Aşağıdaki örnekte, önce seçili olan satırların indeksleri bir matris değişkene kaydediliyor . Sonra bu matris değişkenden faydalanılarak seçilenlerin altlarına ekleniyor.

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var i: Integer;
    SelArray: array of Integer;
begin
  for i := 0 to ListView1.Items.Count - 1 do
  if ListView1.Items[i].Checked then
  begin
    SetLength(SelArray, Length(SelArray) + 1);
    SelArray[High(SelArray)] := i; // Seçili olan satırların index'leri alınıyor
    ListView1.Items[i].Checked := False;
  end;

  for i := High(SelArray) downto 0 do // Seçili olan satırların altlarına kopyaları ekleniyor
  begin
    ListView1.Items.Insert(SelArray[i] + 1).Assign(ListView1.Items[SelArray[i]]);
    ListView1.Items[SelArray[i] + 1].Checked := False;
  end;
end;
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: Listview insert

Mesaj gönderen hido »

Teşekkür ederim tam işimi gördü...
Cevapla