Listviewde seçili olan satırı kopyalıyorum, fakat tüm alanları değil de sadece belirli alanı nasıl kopyalatabilirim?
Kopyalama sırasında id ve sıra numarası alanlarım var bu alanların kopyalanmasını istemiyorum...
procedure TForm11.Button2Click(Sender: TObject);
var
SelArray: array of Integer;
begin
with ListView do
begin
for I := 0 to Items.Count - 1 do
if Items[I].Selected then
begin
SetLength(SelArray, Length(SelArray) + 1);
SelArray[High(SelArray)] := I; // Seçili satır index
end;
for I := High(SelArray) downto 0 do // Seçili satır altına kopyala
begin
Items.Insert(SelArray[I] + 1).Assign(Items[SelArray[i]]);
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
end;
end;
end;
Listviewde seçili olan satırı kopyalıyorum, fakat tüm alanları değil de sadece belirli alanı nasıl kopyalatabilirim?
Kopyalama sırasında id ve sıra numarası alanlarım var bu alanların kopyalanmasını istemiyorum...
procedure TForm11.Button2Click(Sender: TObject);
var
SelArray: array of Integer;
begin
with ListView do
begin
for I := 0 to Items.Count - 1 do
if Items[I].Selected then
begin
SetLength(SelArray, Length(SelArray) + 1);
SelArray[High(SelArray)] := I; // Seçili satır index
end;
for I := High(SelArray) downto 0 do // Seçili satır altına kopyala
begin
Items.Insert(SelArray[I] + 1).Assign(Items[SelArray[i]]);
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
SubItems.Add('Dritte Spalte');
end;
end;
end;
Kısmi olarak belirli alanı kopyalama olayını çözdüm, anacak bu seferde kopyalama işlemini yaparken seçili satırı değil de en üsteki satırı veya birden fazla satır seçilmiş ise kopyalama işlemini kafasına göre yapıyor.
Gözümden kaçan veya nerede hata yapıyorum acaba???...
procedure TForm11.Button2Click(Sender: TObject);
var
Li: TListItem;
SelArray: array of Integer;
begin
with ListView do
begin
for I := 0 to Items.Count - 1 do
if Items[I].Selected then
begin
SetLength(SelArray, Length(SelArray) + 1);
SelArray[High(SelArray)] := I;
end;
for I := High(SelArray) downto 0 do
begin
Li := Items.Insert(SelArray[I] + 1);
Li.SubItems.Add(Items[I].SubItems[0]);
Li.SubItems.Add(Items[I].SubItems[1]);
Li.SubItems.Add(Items[I].SubItems[2]);
Li.SubItems.Add(Items[I].SubItems[3]);
Li.SubItems.Add(Items[I].SubItems[4]);
Li.SubItems.Add(Items[I].SubItems[5]);
Li.SubItems.Add(Items[I].SubItems[6]);
end;
end;
end;