Fórum listview1 , 2 #397404
17/03/2011
0
eu stou usando sem função e colocando essa condição If ListView_Dependente.Items.Item[I].Caption = ListView_Funcionario.Items.Item[ListView_Funcionario.ItemIndex].Caption Then so que esta deleta som 1 se tiverem 2 iguais ele ñ deleta so deleta 1
se puder me ajudar eu agradeço muitíssimo
Lu
Curtir tópico
+ 0Posts
17/03/2011
Leonardo Xavier
tente o seguinte:
var i:integer; Begin for i:=0 to datasource1.dataset.RecordCount do begin If ListView_Dependente.Items.Item[I].Caption = ListView_Funcionario.Items.Item[I].Caption Then begin ListView_Funcionario.Items.Item[I].visible:=false; end; end;
Gostei + 0
17/03/2011
Lu
Gostei + 0
18/03/2011
Lu
Gostei + 0
18/03/2011
André Silveira
Se eu estiver no indice 2 de uma list que tenha 5 itens, ao deletá-lo, o item de indice 3 passa a ser o 2, o 4 passa para 3 e o 5 passa a ser 4.
Pode ser por isso que está pulando um item, pois o indice desse item pode mudar para um que o laço já passou e não passará novamente.
Posta o código completo de como está fazendo que facilitará a solução da sua dúvida.
Gostei + 0
18/03/2011
Lu
Begin
For I := 0 to ListView2.Items.Count - 1 Do
Begin
If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
Begin
ListView2.Items.Delete(I);
ListView1.Items.Delete(I)
Break;
End
Gostei + 0
18/03/2011
Lu
Gostei + 0
18/03/2011
André Silveira
Contador := 0;
If Listview1.ItemIndex <> -1 Then
Begin
While Contador <= ListView2.Items.Count - 1 do
Begin
If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
Begin
ListView2.Items.Delete(I);
ListView1.Items.Delete(I);
End
Else
Inc(Contador);
End
End
Gostei + 0
18/03/2011
Lu
Gostei + 0
18/03/2011
Lu
Gostei + 0
18/03/2011
Lu
Contador := 0;
If Listview1.ItemIndex <> -1 Then
Begin
While Contador <= ListView2.Items.Count - 1 do
Begin
If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
Begin
ListView2.Items.Delete(I);
ListView1.Items.Delete(I);
End
Else
Inc(Contador);
End
End
assim ñ deu certo ainda ta com mesmo erro. exemplo se tiver 2 captions iguiais ao listview1 ele so apaga o primeiro ao invez d apagar todos iguais???????
Gostei + 0
18/03/2011
André Silveira
procedure TForm1.btn1Click(Sender: TObject); var contador : Integer; Achou : Boolean; begin Achou := False; If lv1.ItemIndex <> -1 Then Contador := 0; If lv1.ItemIndex <> -1 Then Begin While Contador <= lv2.Items.Count - 1 do Begin If lv2.Items.Item[Contador].Caption = lv1.Items.Item[lv1.ItemIndex].Caption Then Begin lv2.Items.Delete(Contador); Achou := True; End Else Inc(Contador); End End; if Achou then begin lv1.DeleteSelected; end; lv1.Refresh; lv2.Refresh; end;
Fiz esse exemplo e aqui funcionou normal.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)