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...
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;
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.
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;